{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "5b207b23",
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.io"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7d15c703",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the LSTM model\n",
    "class LSTM(nn.Module):\n",
    "    def __init__(self, input_size, hidden_size, output_size):\n",
    "        super(LSTM, self).__init__()\n",
    "\n",
    "        self.hidden_size = hidden_size\n",
    "\n",
    "        self.lstm = nn.LSTM(input_size, hidden_size, batch_first=True)\n",
    "        self.fc = nn.Linear(hidden_size, output_size)\n",
    "\n",
    "    def forward(self, x, hidden):\n",
    "        output, hidden = self.lstm(x, hidden)\n",
    "        output = self.fc(output)\n",
    "        return output, hidden\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "5fcd1e58",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x size (1, 256)\n",
      "t size (1, 100)\n",
      "u size (256, 100)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# importing data\n",
    "\n",
    "# Load the .mat file\n",
    "mat_data = scipy.io.loadmat('burg.mat')\n",
    "\n",
    "# Access the variables stored in the .mat file\n",
    "# The variable names in the .mat file become keys in the loaded dictionary\n",
    "x = mat_data['x']\n",
    "t = mat_data['t']\n",
    "u = mat_data['u1']\n",
    "\n",
    "#Use the loaded variables as needed\n",
    "print(\"x size\", x.shape)\n",
    "print(\"t size\", t.shape)\n",
    "print(\"u size\", u.shape)\n",
    "\n",
    "X, T = np.meshgrid(x, t)\n",
    "# Define custom color levels\n",
    "c_levels = np.linspace(np.min(u), np.max(u), 100)\n",
    "\n",
    "# Plot the contour\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.contourf(T, X, u.T, levels=c_levels, cmap='coolwarm')\n",
    "plt.xlabel('t')\n",
    "plt.ylabel('x')\n",
    "plt.title('Burgers')\n",
    "plt.colorbar()  # Add a colorbar for the contour levels\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ed198870",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(256, 100)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Set random seed for reproducibility\n",
    "torch.manual_seed(42)\n",
    "\n",
    "# Toy problem data\n",
    "input_size = 256\n",
    "hidden_size = 32\n",
    "output_size = 256\n",
    "sequence_length = 79\n",
    "batch_size = 1\n",
    "num_epochs = 20000\n",
    "\n",
    "# Set random seed for reproducibility\n",
    "torch.manual_seed(42)\n",
    "u[:, 0:100].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "070468a7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test data shape (256,)\n",
      "test target shape (256, 20)\n",
      "input data shape (256, 79)\n",
      "Target data shape (256, 79)\n",
      "input tensor shape torch.Size([1, 79, 256])\n",
      "Target tensor shape torch.Size([1, 79, 256])\n"
     ]
    }
   ],
   "source": [
    "input_data = u[:,0:79]\n",
    "target_data = u[:,1:80]\n",
    "\n",
    "test_data = u[:,79]\n",
    "test_target = u[:,80:100]\n",
    "\n",
    "print(\"test data shape\", test_data.shape)\n",
    "print(\"test target shape\", test_target.shape)\n",
    "\n",
    "print(\"input data shape\",input_data.shape)\n",
    "print(\"Target data shape\",target_data.shape)\n",
    "\n",
    "# Convert data to tensors\n",
    "input_tensor = torch.tensor(input_data.T).view(batch_size, sequence_length, input_size).float()\n",
    "target_tensor = torch.tensor(target_data.T).view(batch_size, sequence_length, output_size).float()\n",
    "\n",
    "print(\"input tensor shape\",input_tensor.shape)\n",
    "print(\"Target tensor shape\",target_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "003fce5f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Convert test data to tensors\n",
    "test_tensor = torch.tensor(test_data.T).view(batch_size, 1, input_size).float()\n",
    "test_target_tensor = torch.tensor(test_target.T).view(batch_size, 20, output_size).float()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "56bc9fad",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 10/20000, Loss: 0.04868699\n",
      "Epoch: 20/20000, Loss: 0.03755799\n",
      "Epoch: 30/20000, Loss: 0.02935270\n",
      "Epoch: 40/20000, Loss: 0.02656572\n",
      "Epoch: 50/20000, Loss: 0.02571796\n",
      "Epoch: 60/20000, Loss: 0.02496230\n",
      "Epoch: 70/20000, Loss: 0.02262440\n",
      "Epoch: 80/20000, Loss: 0.02028687\n",
      "Epoch: 90/20000, Loss: 0.01620742\n",
      "Epoch: 100/20000, Loss: 0.00933764\n",
      "Epoch: 110/20000, Loss: 0.00531531\n",
      "Epoch: 120/20000, Loss: 0.00384806\n",
      "Epoch: 130/20000, Loss: 0.00328149\n",
      "Epoch: 140/20000, Loss: 0.00290461\n",
      "Epoch: 150/20000, Loss: 0.00274521\n",
      "Epoch: 160/20000, Loss: 0.00249488\n",
      "Epoch: 170/20000, Loss: 0.00232613\n",
      "Epoch: 180/20000, Loss: 0.00219083\n",
      "Epoch: 190/20000, Loss: 0.00207542\n",
      "Epoch: 200/20000, Loss: 0.00197175\n",
      "Epoch: 210/20000, Loss: 0.00187902\n",
      "Epoch: 220/20000, Loss: 0.00179559\n",
      "Epoch: 230/20000, Loss: 0.00172027\n",
      "Epoch: 240/20000, Loss: 0.00165198\n",
      "Epoch: 250/20000, Loss: 0.00158895\n",
      "Epoch: 260/20000, Loss: 0.00158098\n",
      "Epoch: 270/20000, Loss: 0.00149214\n",
      "Epoch: 280/20000, Loss: 0.00145146\n",
      "Epoch: 290/20000, Loss: 0.00140868\n",
      "Epoch: 300/20000, Loss: 0.00136926\n",
      "Epoch: 310/20000, Loss: 0.00133440\n",
      "Epoch: 320/20000, Loss: 0.00130710\n",
      "Epoch: 330/20000, Loss: 0.00131877\n",
      "Epoch: 340/20000, Loss: 0.00126761\n",
      "Epoch: 350/20000, Loss: 0.00122971\n",
      "Epoch: 360/20000, Loss: 0.00120512\n",
      "Epoch: 370/20000, Loss: 0.00118419\n",
      "Epoch: 380/20000, Loss: 0.00116449\n",
      "Epoch: 390/20000, Loss: 0.00114671\n",
      "Epoch: 400/20000, Loss: 0.00116551\n",
      "Epoch: 410/20000, Loss: 0.00114328\n",
      "Epoch: 420/20000, Loss: 0.00110884\n",
      "Epoch: 430/20000, Loss: 0.00108640\n",
      "Epoch: 440/20000, Loss: 0.00107380\n",
      "Epoch: 450/20000, Loss: 0.00106043\n",
      "Epoch: 460/20000, Loss: 0.00105472\n",
      "Epoch: 470/20000, Loss: 0.00104527\n",
      "Epoch: 480/20000, Loss: 0.00102682\n",
      "Epoch: 490/20000, Loss: 0.00102039\n",
      "Epoch: 500/20000, Loss: 0.00100858\n",
      "Epoch: 510/20000, Loss: 0.00099591\n",
      "Epoch: 520/20000, Loss: 0.00099681\n",
      "Epoch: 530/20000, Loss: 0.00097950\n",
      "Epoch: 540/20000, Loss: 0.00098913\n",
      "Epoch: 550/20000, Loss: 0.00096035\n",
      "Epoch: 560/20000, Loss: 0.00095450\n",
      "Epoch: 570/20000, Loss: 0.00094496\n",
      "Epoch: 580/20000, Loss: 0.00093630\n",
      "Epoch: 590/20000, Loss: 0.00093491\n",
      "Epoch: 600/20000, Loss: 0.00092304\n",
      "Epoch: 610/20000, Loss: 0.00094065\n",
      "Epoch: 620/20000, Loss: 0.00091539\n",
      "Epoch: 630/20000, Loss: 0.00090057\n",
      "Epoch: 640/20000, Loss: 0.00089471\n",
      "Epoch: 650/20000, Loss: 0.00088771\n",
      "Epoch: 660/20000, Loss: 0.00088198\n",
      "Epoch: 670/20000, Loss: 0.00089583\n",
      "Epoch: 680/20000, Loss: 0.00087299\n",
      "Epoch: 690/20000, Loss: 0.00089674\n",
      "Epoch: 700/20000, Loss: 0.00086017\n",
      "Epoch: 710/20000, Loss: 0.00085902\n",
      "Epoch: 720/20000, Loss: 0.00085167\n",
      "Epoch: 730/20000, Loss: 0.00084424\n",
      "Epoch: 740/20000, Loss: 0.00084104\n",
      "Epoch: 750/20000, Loss: 0.00108884\n",
      "Epoch: 760/20000, Loss: 0.00085308\n",
      "Epoch: 770/20000, Loss: 0.00084897\n",
      "Epoch: 780/20000, Loss: 0.00083458\n",
      "Epoch: 790/20000, Loss: 0.00082335\n",
      "Epoch: 800/20000, Loss: 0.00081613\n",
      "Epoch: 810/20000, Loss: 0.00081306\n",
      "Epoch: 820/20000, Loss: 0.00080886\n",
      "Epoch: 830/20000, Loss: 0.00080519\n",
      "Epoch: 840/20000, Loss: 0.00080153\n",
      "Epoch: 850/20000, Loss: 0.00079943\n",
      "Epoch: 860/20000, Loss: 0.00111349\n",
      "Epoch: 870/20000, Loss: 0.00083163\n",
      "Epoch: 880/20000, Loss: 0.00082841\n",
      "Epoch: 890/20000, Loss: 0.00079662\n",
      "Epoch: 900/20000, Loss: 0.00078674\n",
      "Epoch: 910/20000, Loss: 0.00078318\n",
      "Epoch: 920/20000, Loss: 0.00077929\n",
      "Epoch: 930/20000, Loss: 0.00077609\n",
      "Epoch: 940/20000, Loss: 0.00077319\n",
      "Epoch: 950/20000, Loss: 0.00077053\n",
      "Epoch: 960/20000, Loss: 0.00076794\n",
      "Epoch: 970/20000, Loss: 0.00076673\n",
      "Epoch: 980/20000, Loss: 0.00097210\n",
      "Epoch: 990/20000, Loss: 0.00080499\n",
      "Epoch: 1000/20000, Loss: 0.00078551\n",
      "Epoch: 1010/20000, Loss: 0.00076748\n",
      "Epoch: 1020/20000, Loss: 0.00075754\n",
      "Epoch: 1030/20000, Loss: 0.00075384\n",
      "Epoch: 1040/20000, Loss: 0.00075110\n",
      "Epoch: 1050/20000, Loss: 0.00074847\n",
      "Epoch: 1060/20000, Loss: 0.00074627\n",
      "Epoch: 1070/20000, Loss: 0.00075101\n",
      "Epoch: 1080/20000, Loss: 0.00078482\n",
      "Epoch: 1090/20000, Loss: 0.00074428\n",
      "Epoch: 1100/20000, Loss: 0.00075932\n",
      "Epoch: 1110/20000, Loss: 0.00074624\n",
      "Epoch: 1120/20000, Loss: 0.00073838\n",
      "Epoch: 1130/20000, Loss: 0.00073545\n",
      "Epoch: 1140/20000, Loss: 0.00073324\n",
      "Epoch: 1150/20000, Loss: 0.00073279\n",
      "Epoch: 1160/20000, Loss: 0.00077026\n",
      "Epoch: 1170/20000, Loss: 0.00074350\n",
      "Epoch: 1180/20000, Loss: 0.00072944\n",
      "Epoch: 1190/20000, Loss: 0.00072561\n",
      "Epoch: 1200/20000, Loss: 0.00078790\n",
      "Epoch: 1210/20000, Loss: 0.00078839\n",
      "Epoch: 1220/20000, Loss: 0.00072089\n",
      "Epoch: 1230/20000, Loss: 0.00072426\n",
      "Epoch: 1240/20000, Loss: 0.00072042\n",
      "Epoch: 1250/20000, Loss: 0.00077737\n",
      "Epoch: 1260/20000, Loss: 0.00074742\n",
      "Epoch: 1270/20000, Loss: 0.00072900\n",
      "Epoch: 1280/20000, Loss: 0.00071912\n",
      "Epoch: 1290/20000, Loss: 0.00075268\n",
      "Epoch: 1300/20000, Loss: 0.00071612\n",
      "Epoch: 1310/20000, Loss: 0.00072943\n",
      "Epoch: 1320/20000, Loss: 0.00070970\n",
      "Epoch: 1330/20000, Loss: 0.00070705\n",
      "Epoch: 1340/20000, Loss: 0.00070508\n",
      "Epoch: 1350/20000, Loss: 0.00070458\n",
      "Epoch: 1360/20000, Loss: 0.00071084\n",
      "Epoch: 1370/20000, Loss: 0.00084533\n",
      "Epoch: 1380/20000, Loss: 0.00073912\n",
      "Epoch: 1390/20000, Loss: 0.00070488\n",
      "Epoch: 1400/20000, Loss: 0.00070210\n",
      "Epoch: 1410/20000, Loss: 0.00069923\n",
      "Epoch: 1420/20000, Loss: 0.00069581\n",
      "Epoch: 1430/20000, Loss: 0.00069503\n",
      "Epoch: 1440/20000, Loss: 0.00071388\n",
      "Epoch: 1450/20000, Loss: 0.00073927\n",
      "Epoch: 1460/20000, Loss: 0.00072598\n",
      "Epoch: 1470/20000, Loss: 0.00070014\n",
      "Epoch: 1480/20000, Loss: 0.00069185\n",
      "Epoch: 1490/20000, Loss: 0.00069094\n",
      "Epoch: 1500/20000, Loss: 0.00068875\n",
      "Epoch: 1510/20000, Loss: 0.00068673\n",
      "Epoch: 1520/20000, Loss: 0.00068608\n",
      "Epoch: 1530/20000, Loss: 0.00069062\n",
      "Epoch: 1540/20000, Loss: 0.00088732\n",
      "Epoch: 1550/20000, Loss: 0.00074404\n",
      "Epoch: 1560/20000, Loss: 0.00069194\n",
      "Epoch: 1570/20000, Loss: 0.00068638\n",
      "Epoch: 1580/20000, Loss: 0.00068080\n",
      "Epoch: 1590/20000, Loss: 0.00068033\n",
      "Epoch: 1600/20000, Loss: 0.00067848\n",
      "Epoch: 1610/20000, Loss: 0.00067714\n",
      "Epoch: 1620/20000, Loss: 0.00067635\n",
      "Epoch: 1630/20000, Loss: 0.00067791\n",
      "Epoch: 1640/20000, Loss: 0.00079785\n",
      "Epoch: 1650/20000, Loss: 0.00073008\n",
      "Epoch: 1660/20000, Loss: 0.00069412\n",
      "Epoch: 1670/20000, Loss: 0.00067396\n",
      "Epoch: 1680/20000, Loss: 0.00067520\n",
      "Epoch: 1690/20000, Loss: 0.00067029\n",
      "Epoch: 1700/20000, Loss: 0.00066963\n",
      "Epoch: 1710/20000, Loss: 0.00066859\n",
      "Epoch: 1720/20000, Loss: 0.00066763\n",
      "Epoch: 1730/20000, Loss: 0.00066811\n",
      "Epoch: 1740/20000, Loss: 0.00077329\n",
      "Epoch: 1750/20000, Loss: 0.00073536\n",
      "Epoch: 1760/20000, Loss: 0.00069169\n",
      "Epoch: 1770/20000, Loss: 0.00066410\n",
      "Epoch: 1780/20000, Loss: 0.00066725\n",
      "Epoch: 1790/20000, Loss: 0.00066236\n",
      "Epoch: 1800/20000, Loss: 0.00066180\n",
      "Epoch: 1810/20000, Loss: 0.00066054\n",
      "Epoch: 1820/20000, Loss: 0.00065945\n",
      "Epoch: 1830/20000, Loss: 0.00065863\n",
      "Epoch: 1840/20000, Loss: 0.00065799\n",
      "Epoch: 1850/20000, Loss: 0.00066638\n",
      "Epoch: 1860/20000, Loss: 0.00092536\n",
      "Epoch: 1870/20000, Loss: 0.00066416\n",
      "Epoch: 1880/20000, Loss: 0.00067457\n",
      "Epoch: 1890/20000, Loss: 0.00066019\n",
      "Epoch: 1900/20000, Loss: 0.00065527\n",
      "Epoch: 1910/20000, Loss: 0.00065349\n",
      "Epoch: 1920/20000, Loss: 0.00065242\n",
      "Epoch: 1930/20000, Loss: 0.00065120\n",
      "Epoch: 1940/20000, Loss: 0.00065032\n",
      "Epoch: 1950/20000, Loss: 0.00064948\n",
      "Epoch: 1960/20000, Loss: 0.00064872\n",
      "Epoch: 1970/20000, Loss: 0.00064814\n",
      "Epoch: 1980/20000, Loss: 0.00065833\n",
      "Epoch: 1990/20000, Loss: 0.00085451\n",
      "Epoch: 2000/20000, Loss: 0.00070635\n",
      "Epoch: 2010/20000, Loss: 0.00065174\n",
      "Epoch: 2020/20000, Loss: 0.00064653\n",
      "Epoch: 2030/20000, Loss: 0.00064767\n",
      "Epoch: 2040/20000, Loss: 0.00064285\n",
      "Epoch: 2050/20000, Loss: 0.00065799\n",
      "Epoch: 2060/20000, Loss: 0.00064306\n",
      "Epoch: 2070/20000, Loss: 0.00065671\n",
      "Epoch: 2080/20000, Loss: 0.00064325\n",
      "Epoch: 2090/20000, Loss: 0.00065436\n",
      "Epoch: 2100/20000, Loss: 0.00066055\n",
      "Epoch: 2110/20000, Loss: 0.00065058\n",
      "Epoch: 2120/20000, Loss: 0.00064921\n",
      "Epoch: 2130/20000, Loss: 0.00065513\n",
      "Epoch: 2140/20000, Loss: 0.00068292\n",
      "Epoch: 2150/20000, Loss: 0.00064266\n",
      "Epoch: 2160/20000, Loss: 0.00063739\n",
      "Epoch: 2170/20000, Loss: 0.00065930\n",
      "Epoch: 2180/20000, Loss: 0.00065150\n",
      "Epoch: 2190/20000, Loss: 0.00063274\n",
      "Epoch: 2200/20000, Loss: 0.00066329\n",
      "Epoch: 2210/20000, Loss: 0.00071427\n",
      "Epoch: 2220/20000, Loss: 0.00064713\n",
      "Epoch: 2230/20000, Loss: 0.00063726\n",
      "Epoch: 2240/20000, Loss: 0.00062922\n",
      "Epoch: 2250/20000, Loss: 0.00066190\n",
      "Epoch: 2260/20000, Loss: 0.00063746\n",
      "Epoch: 2270/20000, Loss: 0.00063020\n",
      "Epoch: 2280/20000, Loss: 0.00064833\n",
      "Epoch: 2290/20000, Loss: 0.00068032\n",
      "Epoch: 2300/20000, Loss: 0.00063434\n",
      "Epoch: 2310/20000, Loss: 0.00062480\n",
      "Epoch: 2320/20000, Loss: 0.00064742\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 2330/20000, Loss: 0.00065093\n",
      "Epoch: 2340/20000, Loss: 0.00063173\n",
      "Epoch: 2350/20000, Loss: 0.00062211\n",
      "Epoch: 2360/20000, Loss: 0.00064989\n",
      "Epoch: 2370/20000, Loss: 0.00066121\n",
      "Epoch: 2380/20000, Loss: 0.00063143\n",
      "Epoch: 2390/20000, Loss: 0.00062030\n",
      "Epoch: 2400/20000, Loss: 0.00063489\n",
      "Epoch: 2410/20000, Loss: 0.00062373\n",
      "Epoch: 2420/20000, Loss: 0.00070585\n",
      "Epoch: 2430/20000, Loss: 0.00063013\n",
      "Epoch: 2440/20000, Loss: 0.00063485\n",
      "Epoch: 2450/20000, Loss: 0.00062746\n",
      "Epoch: 2460/20000, Loss: 0.00062085\n",
      "Epoch: 2470/20000, Loss: 0.00062536\n",
      "Epoch: 2480/20000, Loss: 0.00062470\n",
      "Epoch: 2490/20000, Loss: 0.00062841\n",
      "Epoch: 2500/20000, Loss: 0.00063850\n",
      "Epoch: 2510/20000, Loss: 0.00062000\n",
      "Epoch: 2520/20000, Loss: 0.00061897\n",
      "Epoch: 2530/20000, Loss: 0.00062245\n",
      "Epoch: 2540/20000, Loss: 0.00063501\n",
      "Epoch: 2550/20000, Loss: 0.00067648\n",
      "Epoch: 2560/20000, Loss: 0.00062736\n",
      "Epoch: 2570/20000, Loss: 0.00061816\n",
      "Epoch: 2580/20000, Loss: 0.00063051\n",
      "Epoch: 2590/20000, Loss: 0.00061267\n",
      "Epoch: 2600/20000, Loss: 0.00060954\n",
      "Epoch: 2610/20000, Loss: 0.00062343\n",
      "Epoch: 2620/20000, Loss: 0.00062864\n",
      "Epoch: 2630/20000, Loss: 0.00060841\n",
      "Epoch: 2640/20000, Loss: 0.00060720\n",
      "Epoch: 2650/20000, Loss: 0.00062029\n",
      "Epoch: 2660/20000, Loss: 0.00062062\n",
      "Epoch: 2670/20000, Loss: 0.00076493\n",
      "Epoch: 2680/20000, Loss: 0.00062624\n",
      "Epoch: 2690/20000, Loss: 0.00062178\n",
      "Epoch: 2700/20000, Loss: 0.00062346\n",
      "Epoch: 2710/20000, Loss: 0.00060471\n",
      "Epoch: 2720/20000, Loss: 0.00060647\n",
      "Epoch: 2730/20000, Loss: 0.00061316\n",
      "Epoch: 2740/20000, Loss: 0.00060616\n",
      "Epoch: 2750/20000, Loss: 0.00060539\n",
      "Epoch: 2760/20000, Loss: 0.00062129\n",
      "Epoch: 2770/20000, Loss: 0.00064950\n",
      "Epoch: 2780/20000, Loss: 0.00060055\n",
      "Epoch: 2790/20000, Loss: 0.00059892\n",
      "Epoch: 2800/20000, Loss: 0.00061551\n",
      "Epoch: 2810/20000, Loss: 0.00061979\n",
      "Epoch: 2820/20000, Loss: 0.00067674\n",
      "Epoch: 2830/20000, Loss: 0.00061233\n",
      "Epoch: 2840/20000, Loss: 0.00059554\n",
      "Epoch: 2850/20000, Loss: 0.00061750\n",
      "Epoch: 2860/20000, Loss: 0.00059365\n",
      "Epoch: 2870/20000, Loss: 0.00059320\n",
      "Epoch: 2880/20000, Loss: 0.00058960\n",
      "Epoch: 2890/20000, Loss: 0.00074227\n",
      "Epoch: 2900/20000, Loss: 0.00076386\n",
      "Epoch: 2910/20000, Loss: 0.00064968\n",
      "Epoch: 2920/20000, Loss: 0.00059949\n",
      "Epoch: 2930/20000, Loss: 0.00058408\n",
      "Epoch: 2940/20000, Loss: 0.00057208\n",
      "Epoch: 2950/20000, Loss: 0.00056460\n",
      "Epoch: 2960/20000, Loss: 0.00058875\n",
      "Epoch: 2970/20000, Loss: 0.00056623\n",
      "Epoch: 2980/20000, Loss: 0.00056455\n",
      "Epoch: 2990/20000, Loss: 0.00058976\n",
      "Epoch: 3000/20000, Loss: 0.00052533\n",
      "Epoch: 3010/20000, Loss: 0.00051866\n",
      "Epoch: 3020/20000, Loss: 0.00062079\n",
      "Epoch: 3030/20000, Loss: 0.00049490\n",
      "Epoch: 3040/20000, Loss: 0.00048913\n",
      "Epoch: 3050/20000, Loss: 0.00046731\n",
      "Epoch: 3060/20000, Loss: 0.00054503\n",
      "Epoch: 3070/20000, Loss: 0.00044238\n",
      "Epoch: 3080/20000, Loss: 0.00041563\n",
      "Epoch: 3090/20000, Loss: 0.00043675\n",
      "Epoch: 3100/20000, Loss: 0.00042492\n",
      "Epoch: 3110/20000, Loss: 0.00037431\n",
      "Epoch: 3120/20000, Loss: 0.00036120\n",
      "Epoch: 3130/20000, Loss: 0.00094155\n",
      "Epoch: 3140/20000, Loss: 0.00037248\n",
      "Epoch: 3150/20000, Loss: 0.00043611\n",
      "Epoch: 3160/20000, Loss: 0.00032912\n",
      "Epoch: 3170/20000, Loss: 0.00032740\n",
      "Epoch: 3180/20000, Loss: 0.00031155\n",
      "Epoch: 3190/20000, Loss: 0.00029809\n",
      "Epoch: 3200/20000, Loss: 0.00028628\n",
      "Epoch: 3210/20000, Loss: 0.00027622\n",
      "Epoch: 3220/20000, Loss: 0.00026744\n",
      "Epoch: 3230/20000, Loss: 0.00025913\n",
      "Epoch: 3240/20000, Loss: 0.00025140\n",
      "Epoch: 3250/20000, Loss: 0.00024424\n",
      "Epoch: 3260/20000, Loss: 0.00024964\n",
      "Epoch: 3270/20000, Loss: 0.00043311\n",
      "Epoch: 3280/20000, Loss: 0.00037456\n",
      "Epoch: 3290/20000, Loss: 0.00027472\n",
      "Epoch: 3300/20000, Loss: 0.00023778\n",
      "Epoch: 3310/20000, Loss: 0.00022410\n",
      "Epoch: 3320/20000, Loss: 0.00021320\n",
      "Epoch: 3330/20000, Loss: 0.00020618\n",
      "Epoch: 3340/20000, Loss: 0.00019622\n",
      "Epoch: 3350/20000, Loss: 0.00018899\n",
      "Epoch: 3360/20000, Loss: 0.00018022\n",
      "Epoch: 3370/20000, Loss: 0.00017096\n",
      "Epoch: 3380/20000, Loss: 0.00016117\n",
      "Epoch: 3390/20000, Loss: 0.00015099\n",
      "Epoch: 3400/20000, Loss: 0.00014436\n",
      "Epoch: 3410/20000, Loss: 0.00045368\n",
      "Epoch: 3420/20000, Loss: 0.00017790\n",
      "Epoch: 3430/20000, Loss: 0.00014977\n",
      "Epoch: 3440/20000, Loss: 0.00011567\n",
      "Epoch: 3450/20000, Loss: 0.00010076\n",
      "Epoch: 3460/20000, Loss: 0.00009736\n",
      "Epoch: 3470/20000, Loss: 0.00009186\n",
      "Epoch: 3480/20000, Loss: 0.00008894\n",
      "Epoch: 3490/20000, Loss: 0.00008630\n",
      "Epoch: 3500/20000, Loss: 0.00008434\n",
      "Epoch: 3510/20000, Loss: 0.00008273\n",
      "Epoch: 3520/20000, Loss: 0.00008136\n",
      "Epoch: 3530/20000, Loss: 0.00008019\n",
      "Epoch: 3540/20000, Loss: 0.00007915\n",
      "Epoch: 3550/20000, Loss: 0.00007822\n",
      "Epoch: 3560/20000, Loss: 0.00007742\n",
      "Epoch: 3570/20000, Loss: 0.00007990\n",
      "Epoch: 3580/20000, Loss: 0.00011418\n",
      "Epoch: 3590/20000, Loss: 0.00013107\n",
      "Epoch: 3600/20000, Loss: 0.00009445\n",
      "Epoch: 3610/20000, Loss: 0.00008048\n",
      "Epoch: 3620/20000, Loss: 0.00007328\n",
      "Epoch: 3630/20000, Loss: 0.00007493\n",
      "Epoch: 3640/20000, Loss: 0.00007341\n",
      "Epoch: 3650/20000, Loss: 0.00007625\n",
      "Epoch: 3660/20000, Loss: 0.00013809\n",
      "Epoch: 3670/20000, Loss: 0.00009762\n",
      "Epoch: 3680/20000, Loss: 0.00007064\n",
      "Epoch: 3690/20000, Loss: 0.00007295\n",
      "Epoch: 3700/20000, Loss: 0.00007119\n",
      "Epoch: 3710/20000, Loss: 0.00006880\n",
      "Epoch: 3720/20000, Loss: 0.00006798\n",
      "Epoch: 3730/20000, Loss: 0.00006760\n",
      "Epoch: 3740/20000, Loss: 0.00006682\n",
      "Epoch: 3750/20000, Loss: 0.00006623\n",
      "Epoch: 3760/20000, Loss: 0.00006587\n",
      "Epoch: 3770/20000, Loss: 0.00007266\n",
      "Epoch: 3780/20000, Loss: 0.00040997\n",
      "Epoch: 3790/20000, Loss: 0.00017908\n",
      "Epoch: 3800/20000, Loss: 0.00010630\n",
      "Epoch: 3810/20000, Loss: 0.00007395\n",
      "Epoch: 3820/20000, Loss: 0.00006501\n",
      "Epoch: 3830/20000, Loss: 0.00006347\n",
      "Epoch: 3840/20000, Loss: 0.00006289\n",
      "Epoch: 3850/20000, Loss: 0.00006189\n",
      "Epoch: 3860/20000, Loss: 0.00006146\n",
      "Epoch: 3870/20000, Loss: 0.00006095\n",
      "Epoch: 3880/20000, Loss: 0.00006052\n",
      "Epoch: 3890/20000, Loss: 0.00006011\n",
      "Epoch: 3900/20000, Loss: 0.00006006\n",
      "Epoch: 3910/20000, Loss: 0.00005992\n",
      "Epoch: 3920/20000, Loss: 0.00005893\n",
      "Epoch: 3930/20000, Loss: 0.00005851\n",
      "Epoch: 3940/20000, Loss: 0.00005810\n",
      "Epoch: 3950/20000, Loss: 0.00005770\n",
      "Epoch: 3960/20000, Loss: 0.00005756\n",
      "Epoch: 3970/20000, Loss: 0.00007851\n",
      "Epoch: 3980/20000, Loss: 0.00038380\n",
      "Epoch: 3990/20000, Loss: 0.00017708\n",
      "Epoch: 4000/20000, Loss: 0.00008872\n",
      "Epoch: 4010/20000, Loss: 0.00006227\n",
      "Epoch: 4020/20000, Loss: 0.00005760\n",
      "Epoch: 4030/20000, Loss: 0.00005600\n",
      "Epoch: 4040/20000, Loss: 0.00005496\n",
      "Epoch: 4050/20000, Loss: 0.00005462\n",
      "Epoch: 4060/20000, Loss: 0.00005404\n",
      "Epoch: 4070/20000, Loss: 0.00005362\n",
      "Epoch: 4080/20000, Loss: 0.00005365\n",
      "Epoch: 4090/20000, Loss: 0.00005310\n",
      "Epoch: 4100/20000, Loss: 0.00005256\n",
      "Epoch: 4110/20000, Loss: 0.00005224\n",
      "Epoch: 4120/20000, Loss: 0.00005188\n",
      "Epoch: 4130/20000, Loss: 0.00005155\n",
      "Epoch: 4140/20000, Loss: 0.00005126\n",
      "Epoch: 4150/20000, Loss: 0.00005415\n",
      "Epoch: 4160/20000, Loss: 0.00036380\n",
      "Epoch: 4170/20000, Loss: 0.00018137\n",
      "Epoch: 4180/20000, Loss: 0.00010405\n",
      "Epoch: 4190/20000, Loss: 0.00006893\n",
      "Epoch: 4200/20000, Loss: 0.00005354\n",
      "Epoch: 4210/20000, Loss: 0.00004933\n",
      "Epoch: 4220/20000, Loss: 0.00004957\n",
      "Epoch: 4230/20000, Loss: 0.00004871\n",
      "Epoch: 4240/20000, Loss: 0.00004822\n",
      "Epoch: 4250/20000, Loss: 0.00004795\n",
      "Epoch: 4260/20000, Loss: 0.00004851\n",
      "Epoch: 4270/20000, Loss: 0.00008929\n",
      "Epoch: 4280/20000, Loss: 0.00005205\n",
      "Epoch: 4290/20000, Loss: 0.00005192\n",
      "Epoch: 4300/20000, Loss: 0.00005005\n",
      "Epoch: 4310/20000, Loss: 0.00004801\n",
      "Epoch: 4320/20000, Loss: 0.00004645\n",
      "Epoch: 4330/20000, Loss: 0.00004570\n",
      "Epoch: 4340/20000, Loss: 0.00004557\n",
      "Epoch: 4350/20000, Loss: 0.00004510\n",
      "Epoch: 4360/20000, Loss: 0.00004480\n",
      "Epoch: 4370/20000, Loss: 0.00004475\n",
      "Epoch: 4380/20000, Loss: 0.00005903\n",
      "Epoch: 4390/20000, Loss: 0.00025663\n",
      "Epoch: 4400/20000, Loss: 0.00006249\n",
      "Epoch: 4410/20000, Loss: 0.00006467\n",
      "Epoch: 4420/20000, Loss: 0.00005399\n",
      "Epoch: 4430/20000, Loss: 0.00004529\n",
      "Epoch: 4440/20000, Loss: 0.00004404\n",
      "Epoch: 4450/20000, Loss: 0.00004283\n",
      "Epoch: 4460/20000, Loss: 0.00004243\n",
      "Epoch: 4470/20000, Loss: 0.00004217\n",
      "Epoch: 4480/20000, Loss: 0.00004172\n",
      "Epoch: 4490/20000, Loss: 0.00004146\n",
      "Epoch: 4500/20000, Loss: 0.00004128\n",
      "Epoch: 4510/20000, Loss: 0.00004860\n",
      "Epoch: 4520/20000, Loss: 0.00047239\n",
      "Epoch: 4530/20000, Loss: 0.00004356\n",
      "Epoch: 4540/20000, Loss: 0.00004664\n",
      "Epoch: 4550/20000, Loss: 0.00004661\n",
      "Epoch: 4560/20000, Loss: 0.00004556\n",
      "Epoch: 4570/20000, Loss: 0.00004066\n",
      "Epoch: 4580/20000, Loss: 0.00003994\n",
      "Epoch: 4590/20000, Loss: 0.00004124\n",
      "Epoch: 4600/20000, Loss: 0.00007412\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 4610/20000, Loss: 0.00004125\n",
      "Epoch: 4620/20000, Loss: 0.00004417\n",
      "Epoch: 4630/20000, Loss: 0.00004274\n",
      "Epoch: 4640/20000, Loss: 0.00003978\n",
      "Epoch: 4650/20000, Loss: 0.00003805\n",
      "Epoch: 4660/20000, Loss: 0.00003769\n",
      "Epoch: 4670/20000, Loss: 0.00003922\n",
      "Epoch: 4680/20000, Loss: 0.00007163\n",
      "Epoch: 4690/20000, Loss: 0.00007830\n",
      "Epoch: 4700/20000, Loss: 0.00004644\n",
      "Epoch: 4710/20000, Loss: 0.00003840\n",
      "Epoch: 4720/20000, Loss: 0.00003710\n",
      "Epoch: 4730/20000, Loss: 0.00003699\n",
      "Epoch: 4740/20000, Loss: 0.00003665\n",
      "Epoch: 4750/20000, Loss: 0.00003577\n",
      "Epoch: 4760/20000, Loss: 0.00003584\n",
      "Epoch: 4770/20000, Loss: 0.00004320\n",
      "Epoch: 4780/20000, Loss: 0.00015288\n",
      "Epoch: 4790/20000, Loss: 0.00010073\n",
      "Epoch: 4800/20000, Loss: 0.00012265\n",
      "Epoch: 4810/20000, Loss: 0.00005449\n",
      "Epoch: 4820/20000, Loss: 0.00003669\n",
      "Epoch: 4830/20000, Loss: 0.00003439\n",
      "Epoch: 4840/20000, Loss: 0.00003403\n",
      "Epoch: 4850/20000, Loss: 0.00003405\n",
      "Epoch: 4860/20000, Loss: 0.00003373\n",
      "Epoch: 4870/20000, Loss: 0.00003338\n",
      "Epoch: 4880/20000, Loss: 0.00004039\n",
      "Epoch: 4890/20000, Loss: 0.00029921\n",
      "Epoch: 4900/20000, Loss: 0.00011963\n",
      "Epoch: 4910/20000, Loss: 0.00004839\n",
      "Epoch: 4920/20000, Loss: 0.00004137\n",
      "Epoch: 4930/20000, Loss: 0.00003361\n",
      "Epoch: 4940/20000, Loss: 0.00003404\n",
      "Epoch: 4950/20000, Loss: 0.00003262\n",
      "Epoch: 4960/20000, Loss: 0.00003196\n",
      "Epoch: 4970/20000, Loss: 0.00003231\n",
      "Epoch: 4980/20000, Loss: 0.00005212\n",
      "Epoch: 4990/20000, Loss: 0.00012242\n",
      "Epoch: 5000/20000, Loss: 0.00005178\n",
      "Epoch: 5010/20000, Loss: 0.00003246\n",
      "Epoch: 5020/20000, Loss: 0.00003147\n",
      "Epoch: 5030/20000, Loss: 0.00003112\n",
      "Epoch: 5040/20000, Loss: 0.00003121\n",
      "Epoch: 5050/20000, Loss: 0.00003160\n",
      "Epoch: 5060/20000, Loss: 0.00007074\n",
      "Epoch: 5070/20000, Loss: 0.00008393\n",
      "Epoch: 5080/20000, Loss: 0.00004715\n",
      "Epoch: 5090/20000, Loss: 0.00003765\n",
      "Epoch: 5100/20000, Loss: 0.00003195\n",
      "Epoch: 5110/20000, Loss: 0.00003356\n",
      "Epoch: 5120/20000, Loss: 0.00005081\n",
      "Epoch: 5130/20000, Loss: 0.00005372\n",
      "Epoch: 5140/20000, Loss: 0.00003852\n",
      "Epoch: 5150/20000, Loss: 0.00002926\n",
      "Epoch: 5160/20000, Loss: 0.00003139\n",
      "Epoch: 5170/20000, Loss: 0.00004136\n",
      "Epoch: 5180/20000, Loss: 0.00006354\n",
      "Epoch: 5190/20000, Loss: 0.00002843\n",
      "Epoch: 5200/20000, Loss: 0.00003804\n",
      "Epoch: 5210/20000, Loss: 0.00006457\n",
      "Epoch: 5220/20000, Loss: 0.00010750\n",
      "Epoch: 5230/20000, Loss: 0.00002914\n",
      "Epoch: 5240/20000, Loss: 0.00003977\n",
      "Epoch: 5250/20000, Loss: 0.00003444\n",
      "Epoch: 5260/20000, Loss: 0.00003023\n",
      "Epoch: 5270/20000, Loss: 0.00002775\n",
      "Epoch: 5280/20000, Loss: 0.00002696\n",
      "Epoch: 5290/20000, Loss: 0.00002869\n",
      "Epoch: 5300/20000, Loss: 0.00010414\n",
      "Epoch: 5310/20000, Loss: 0.00005904\n",
      "Epoch: 5320/20000, Loss: 0.00004834\n",
      "Epoch: 5330/20000, Loss: 0.00003889\n",
      "Epoch: 5340/20000, Loss: 0.00002990\n",
      "Epoch: 5350/20000, Loss: 0.00002959\n",
      "Epoch: 5360/20000, Loss: 0.00004530\n",
      "Epoch: 5370/20000, Loss: 0.00009430\n",
      "Epoch: 5380/20000, Loss: 0.00004224\n",
      "Epoch: 5390/20000, Loss: 0.00003288\n",
      "Epoch: 5400/20000, Loss: 0.00002894\n",
      "Epoch: 5410/20000, Loss: 0.00002560\n",
      "Epoch: 5420/20000, Loss: 0.00002796\n",
      "Epoch: 5430/20000, Loss: 0.00006070\n",
      "Epoch: 5440/20000, Loss: 0.00011456\n",
      "Epoch: 5450/20000, Loss: 0.00005632\n",
      "Epoch: 5460/20000, Loss: 0.00003433\n",
      "Epoch: 5470/20000, Loss: 0.00002957\n",
      "Epoch: 5480/20000, Loss: 0.00002760\n",
      "Epoch: 5490/20000, Loss: 0.00002512\n",
      "Epoch: 5500/20000, Loss: 0.00002747\n",
      "Epoch: 5510/20000, Loss: 0.00006796\n",
      "Epoch: 5520/20000, Loss: 0.00004422\n",
      "Epoch: 5530/20000, Loss: 0.00002950\n",
      "Epoch: 5540/20000, Loss: 0.00002734\n",
      "Epoch: 5550/20000, Loss: 0.00002493\n",
      "Epoch: 5560/20000, Loss: 0.00002845\n",
      "Epoch: 5570/20000, Loss: 0.00012611\n",
      "Epoch: 5580/20000, Loss: 0.00003755\n",
      "Epoch: 5590/20000, Loss: 0.00003514\n",
      "Epoch: 5600/20000, Loss: 0.00002878\n",
      "Epoch: 5610/20000, Loss: 0.00002630\n",
      "Epoch: 5620/20000, Loss: 0.00002392\n",
      "Epoch: 5630/20000, Loss: 0.00002321\n",
      "Epoch: 5640/20000, Loss: 0.00002294\n",
      "Epoch: 5650/20000, Loss: 0.00002310\n",
      "Epoch: 5660/20000, Loss: 0.00003976\n",
      "Epoch: 5670/20000, Loss: 0.00022002\n",
      "Epoch: 5680/20000, Loss: 0.00003365\n",
      "Epoch: 5690/20000, Loss: 0.00004045\n",
      "Epoch: 5700/20000, Loss: 0.00002719\n",
      "Epoch: 5710/20000, Loss: 0.00002414\n",
      "Epoch: 5720/20000, Loss: 0.00002318\n",
      "Epoch: 5730/20000, Loss: 0.00002902\n",
      "Epoch: 5740/20000, Loss: 0.00007378\n",
      "Epoch: 5750/20000, Loss: 0.00002469\n",
      "Epoch: 5760/20000, Loss: 0.00003254\n",
      "Epoch: 5770/20000, Loss: 0.00002401\n",
      "Epoch: 5780/20000, Loss: 0.00002576\n",
      "Epoch: 5790/20000, Loss: 0.00002487\n",
      "Epoch: 5800/20000, Loss: 0.00003331\n",
      "Epoch: 5810/20000, Loss: 0.00009520\n",
      "Epoch: 5820/20000, Loss: 0.00003199\n",
      "Epoch: 5830/20000, Loss: 0.00003122\n",
      "Epoch: 5840/20000, Loss: 0.00002921\n",
      "Epoch: 5850/20000, Loss: 0.00002114\n",
      "Epoch: 5860/20000, Loss: 0.00002201\n",
      "Epoch: 5870/20000, Loss: 0.00002706\n",
      "Epoch: 5880/20000, Loss: 0.00011458\n",
      "Epoch: 5890/20000, Loss: 0.00003667\n",
      "Epoch: 5900/20000, Loss: 0.00005688\n",
      "Epoch: 5910/20000, Loss: 0.00003375\n",
      "Epoch: 5920/20000, Loss: 0.00002903\n",
      "Epoch: 5930/20000, Loss: 0.00002492\n",
      "Epoch: 5940/20000, Loss: 0.00002351\n",
      "Epoch: 5950/20000, Loss: 0.00003731\n",
      "Epoch: 5960/20000, Loss: 0.00007394\n",
      "Epoch: 5970/20000, Loss: 0.00002799\n",
      "Epoch: 5980/20000, Loss: 0.00007051\n",
      "Epoch: 5990/20000, Loss: 0.00007340\n",
      "Epoch: 6000/20000, Loss: 0.00002597\n",
      "Epoch: 6010/20000, Loss: 0.00002585\n",
      "Epoch: 6020/20000, Loss: 0.00002008\n",
      "Epoch: 6030/20000, Loss: 0.00002030\n",
      "Epoch: 6040/20000, Loss: 0.00002002\n",
      "Epoch: 6050/20000, Loss: 0.00002332\n",
      "Epoch: 6060/20000, Loss: 0.00010967\n",
      "Epoch: 6070/20000, Loss: 0.00004144\n",
      "Epoch: 6080/20000, Loss: 0.00003798\n",
      "Epoch: 6090/20000, Loss: 0.00001956\n",
      "Epoch: 6100/20000, Loss: 0.00002051\n",
      "Epoch: 6110/20000, Loss: 0.00001992\n",
      "Epoch: 6120/20000, Loss: 0.00001927\n",
      "Epoch: 6130/20000, Loss: 0.00001903\n",
      "Epoch: 6140/20000, Loss: 0.00001903\n",
      "Epoch: 6150/20000, Loss: 0.00001879\n",
      "Epoch: 6160/20000, Loss: 0.00001872\n",
      "Epoch: 6170/20000, Loss: 0.00001995\n",
      "Epoch: 6180/20000, Loss: 0.00015066\n",
      "Epoch: 6190/20000, Loss: 0.00013008\n",
      "Epoch: 6200/20000, Loss: 0.00004385\n",
      "Epoch: 6210/20000, Loss: 0.00003182\n",
      "Epoch: 6220/20000, Loss: 0.00002585\n",
      "Epoch: 6230/20000, Loss: 0.00002171\n",
      "Epoch: 6240/20000, Loss: 0.00001937\n",
      "Epoch: 6250/20000, Loss: 0.00001868\n",
      "Epoch: 6260/20000, Loss: 0.00001842\n",
      "Epoch: 6270/20000, Loss: 0.00001825\n",
      "Epoch: 6280/20000, Loss: 0.00001813\n",
      "Epoch: 6290/20000, Loss: 0.00001805\n",
      "Epoch: 6300/20000, Loss: 0.00001803\n",
      "Epoch: 6310/20000, Loss: 0.00001806\n",
      "Epoch: 6320/20000, Loss: 0.00001821\n",
      "Epoch: 6330/20000, Loss: 0.00003470\n",
      "Epoch: 6340/20000, Loss: 0.00014823\n",
      "Epoch: 6350/20000, Loss: 0.00004846\n",
      "Epoch: 6360/20000, Loss: 0.00003691\n",
      "Epoch: 6370/20000, Loss: 0.00002347\n",
      "Epoch: 6380/20000, Loss: 0.00002117\n",
      "Epoch: 6390/20000, Loss: 0.00002233\n",
      "Epoch: 6400/20000, Loss: 0.00005569\n",
      "Epoch: 6410/20000, Loss: 0.00004044\n",
      "Epoch: 6420/20000, Loss: 0.00002969\n",
      "Epoch: 6430/20000, Loss: 0.00002430\n",
      "Epoch: 6440/20000, Loss: 0.00001825\n",
      "Epoch: 6450/20000, Loss: 0.00001977\n",
      "Epoch: 6460/20000, Loss: 0.00002114\n",
      "Epoch: 6470/20000, Loss: 0.00004439\n",
      "Epoch: 6480/20000, Loss: 0.00009092\n",
      "Epoch: 6490/20000, Loss: 0.00003782\n",
      "Epoch: 6500/20000, Loss: 0.00002067\n",
      "Epoch: 6510/20000, Loss: 0.00001739\n",
      "Epoch: 6520/20000, Loss: 0.00001867\n",
      "Epoch: 6530/20000, Loss: 0.00002139\n",
      "Epoch: 6540/20000, Loss: 0.00004697\n",
      "Epoch: 6550/20000, Loss: 0.00009407\n",
      "Epoch: 6560/20000, Loss: 0.00003809\n",
      "Epoch: 6570/20000, Loss: 0.00002181\n",
      "Epoch: 6580/20000, Loss: 0.00002058\n",
      "Epoch: 6590/20000, Loss: 0.00001723\n",
      "Epoch: 6600/20000, Loss: 0.00001993\n",
      "Epoch: 6610/20000, Loss: 0.00003709\n",
      "Epoch: 6620/20000, Loss: 0.00015576\n",
      "Epoch: 6630/20000, Loss: 0.00006748\n",
      "Epoch: 6640/20000, Loss: 0.00003259\n",
      "Epoch: 6650/20000, Loss: 0.00001867\n",
      "Epoch: 6660/20000, Loss: 0.00001877\n",
      "Epoch: 6670/20000, Loss: 0.00001691\n",
      "Epoch: 6680/20000, Loss: 0.00001654\n",
      "Epoch: 6690/20000, Loss: 0.00001624\n",
      "Epoch: 6700/20000, Loss: 0.00001740\n",
      "Epoch: 6710/20000, Loss: 0.00008691\n",
      "Epoch: 6720/20000, Loss: 0.00012254\n",
      "Epoch: 6730/20000, Loss: 0.00006176\n",
      "Epoch: 6740/20000, Loss: 0.00002943\n",
      "Epoch: 6750/20000, Loss: 0.00001639\n",
      "Epoch: 6760/20000, Loss: 0.00001848\n",
      "Epoch: 6770/20000, Loss: 0.00001616\n",
      "Epoch: 6780/20000, Loss: 0.00001621\n",
      "Epoch: 6790/20000, Loss: 0.00001586\n",
      "Epoch: 6800/20000, Loss: 0.00001598\n",
      "Epoch: 6810/20000, Loss: 0.00002009\n",
      "Epoch: 6820/20000, Loss: 0.00017115\n",
      "Epoch: 6830/20000, Loss: 0.00007704\n",
      "Epoch: 6840/20000, Loss: 0.00002894\n",
      "Epoch: 6850/20000, Loss: 0.00002132\n",
      "Epoch: 6860/20000, Loss: 0.00001702\n",
      "Epoch: 6870/20000, Loss: 0.00001682\n",
      "Epoch: 6880/20000, Loss: 0.00001587\n",
      "Epoch: 6890/20000, Loss: 0.00001548\n",
      "Epoch: 6900/20000, Loss: 0.00001549\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 6910/20000, Loss: 0.00001581\n",
      "Epoch: 6920/20000, Loss: 0.00002661\n",
      "Epoch: 6930/20000, Loss: 0.00023293\n",
      "Epoch: 6940/20000, Loss: 0.00008914\n",
      "Epoch: 6950/20000, Loss: 0.00002816\n",
      "Epoch: 6960/20000, Loss: 0.00001993\n",
      "Epoch: 6970/20000, Loss: 0.00001744\n",
      "Epoch: 6980/20000, Loss: 0.00001609\n",
      "Epoch: 6990/20000, Loss: 0.00001558\n",
      "Epoch: 7000/20000, Loss: 0.00001532\n",
      "Epoch: 7010/20000, Loss: 0.00001514\n",
      "Epoch: 7020/20000, Loss: 0.00001513\n",
      "Epoch: 7030/20000, Loss: 0.00001540\n",
      "Epoch: 7040/20000, Loss: 0.00002561\n",
      "Epoch: 7050/20000, Loss: 0.00025346\n",
      "Epoch: 7060/20000, Loss: 0.00004621\n",
      "Epoch: 7070/20000, Loss: 0.00004193\n",
      "Epoch: 7080/20000, Loss: 0.00001624\n",
      "Epoch: 7090/20000, Loss: 0.00001900\n",
      "Epoch: 7100/20000, Loss: 0.00001520\n",
      "Epoch: 7110/20000, Loss: 0.00001510\n",
      "Epoch: 7120/20000, Loss: 0.00001487\n",
      "Epoch: 7130/20000, Loss: 0.00001495\n",
      "Epoch: 7140/20000, Loss: 0.00002251\n",
      "Epoch: 7150/20000, Loss: 0.00026652\n",
      "Epoch: 7160/20000, Loss: 0.00004281\n",
      "Epoch: 7170/20000, Loss: 0.00002911\n",
      "Epoch: 7180/20000, Loss: 0.00001905\n",
      "Epoch: 7190/20000, Loss: 0.00001680\n",
      "Epoch: 7200/20000, Loss: 0.00001615\n",
      "Epoch: 7210/20000, Loss: 0.00001497\n",
      "Epoch: 7220/20000, Loss: 0.00001466\n",
      "Epoch: 7230/20000, Loss: 0.00001467\n",
      "Epoch: 7240/20000, Loss: 0.00001704\n",
      "Epoch: 7250/20000, Loss: 0.00010743\n",
      "Epoch: 7260/20000, Loss: 0.00003687\n",
      "Epoch: 7270/20000, Loss: 0.00002589\n",
      "Epoch: 7280/20000, Loss: 0.00002429\n",
      "Epoch: 7290/20000, Loss: 0.00001626\n",
      "Epoch: 7300/20000, Loss: 0.00001525\n",
      "Epoch: 7310/20000, Loss: 0.00001464\n",
      "Epoch: 7320/20000, Loss: 0.00001447\n",
      "Epoch: 7330/20000, Loss: 0.00001425\n",
      "Epoch: 7340/20000, Loss: 0.00001426\n",
      "Epoch: 7350/20000, Loss: 0.00001456\n",
      "Epoch: 7360/20000, Loss: 0.00002426\n",
      "Epoch: 7370/20000, Loss: 0.00025273\n",
      "Epoch: 7380/20000, Loss: 0.00009198\n",
      "Epoch: 7390/20000, Loss: 0.00002464\n",
      "Epoch: 7400/20000, Loss: 0.00001951\n",
      "Epoch: 7410/20000, Loss: 0.00001714\n",
      "Epoch: 7420/20000, Loss: 0.00001557\n",
      "Epoch: 7430/20000, Loss: 0.00001503\n",
      "Epoch: 7440/20000, Loss: 0.00001426\n",
      "Epoch: 7450/20000, Loss: 0.00001407\n",
      "Epoch: 7460/20000, Loss: 0.00001401\n",
      "Epoch: 7470/20000, Loss: 0.00001397\n",
      "Epoch: 7480/20000, Loss: 0.00001524\n",
      "Epoch: 7490/20000, Loss: 0.00008441\n",
      "Epoch: 7500/20000, Loss: 0.00005476\n",
      "Epoch: 7510/20000, Loss: 0.00003168\n",
      "Epoch: 7520/20000, Loss: 0.00002977\n",
      "Epoch: 7530/20000, Loss: 0.00001457\n",
      "Epoch: 7540/20000, Loss: 0.00001703\n",
      "Epoch: 7550/20000, Loss: 0.00001555\n",
      "Epoch: 7560/20000, Loss: 0.00002334\n",
      "Epoch: 7570/20000, Loss: 0.00010053\n",
      "Epoch: 7580/20000, Loss: 0.00001790\n",
      "Epoch: 7590/20000, Loss: 0.00001707\n",
      "Epoch: 7600/20000, Loss: 0.00001870\n",
      "Epoch: 7610/20000, Loss: 0.00001545\n",
      "Epoch: 7620/20000, Loss: 0.00001450\n",
      "Epoch: 7630/20000, Loss: 0.00001435\n",
      "Epoch: 7640/20000, Loss: 0.00001378\n",
      "Epoch: 7650/20000, Loss: 0.00001626\n",
      "Epoch: 7660/20000, Loss: 0.00014309\n",
      "Epoch: 7670/20000, Loss: 0.00007075\n",
      "Epoch: 7680/20000, Loss: 0.00005028\n",
      "Epoch: 7690/20000, Loss: 0.00002822\n",
      "Epoch: 7700/20000, Loss: 0.00001532\n",
      "Epoch: 7710/20000, Loss: 0.00001569\n",
      "Epoch: 7720/20000, Loss: 0.00001428\n",
      "Epoch: 7730/20000, Loss: 0.00001352\n",
      "Epoch: 7740/20000, Loss: 0.00001344\n",
      "Epoch: 7750/20000, Loss: 0.00001339\n",
      "Epoch: 7760/20000, Loss: 0.00001337\n",
      "Epoch: 7770/20000, Loss: 0.00001369\n",
      "Epoch: 7780/20000, Loss: 0.00003166\n",
      "Epoch: 7790/20000, Loss: 0.00008173\n",
      "Epoch: 7800/20000, Loss: 0.00003288\n",
      "Epoch: 7810/20000, Loss: 0.00002021\n",
      "Epoch: 7820/20000, Loss: 0.00001649\n",
      "Epoch: 7830/20000, Loss: 0.00001447\n",
      "Epoch: 7840/20000, Loss: 0.00002771\n",
      "Epoch: 7850/20000, Loss: 0.00020661\n",
      "Epoch: 7860/20000, Loss: 0.00007031\n",
      "Epoch: 7870/20000, Loss: 0.00002864\n",
      "Epoch: 7880/20000, Loss: 0.00001662\n",
      "Epoch: 7890/20000, Loss: 0.00001529\n",
      "Epoch: 7900/20000, Loss: 0.00001445\n",
      "Epoch: 7910/20000, Loss: 0.00001331\n",
      "Epoch: 7920/20000, Loss: 0.00001341\n",
      "Epoch: 7930/20000, Loss: 0.00001346\n",
      "Epoch: 7940/20000, Loss: 0.00001687\n",
      "Epoch: 7950/20000, Loss: 0.00009685\n",
      "Epoch: 7960/20000, Loss: 0.00004537\n",
      "Epoch: 7970/20000, Loss: 0.00003154\n",
      "Epoch: 7980/20000, Loss: 0.00001629\n",
      "Epoch: 7990/20000, Loss: 0.00001518\n",
      "Epoch: 8000/20000, Loss: 0.00001424\n",
      "Epoch: 8010/20000, Loss: 0.00001719\n",
      "Epoch: 8020/20000, Loss: 0.00006505\n",
      "Epoch: 8030/20000, Loss: 0.00005323\n",
      "Epoch: 8040/20000, Loss: 0.00002909\n",
      "Epoch: 8050/20000, Loss: 0.00002022\n",
      "Epoch: 8060/20000, Loss: 0.00001690\n",
      "Epoch: 8070/20000, Loss: 0.00001390\n",
      "Epoch: 8080/20000, Loss: 0.00001372\n",
      "Epoch: 8090/20000, Loss: 0.00001550\n",
      "Epoch: 8100/20000, Loss: 0.00003031\n",
      "Epoch: 8110/20000, Loss: 0.00012056\n",
      "Epoch: 8120/20000, Loss: 0.00004004\n",
      "Epoch: 8130/20000, Loss: 0.00002327\n",
      "Epoch: 8140/20000, Loss: 0.00001586\n",
      "Epoch: 8150/20000, Loss: 0.00001396\n",
      "Epoch: 8160/20000, Loss: 0.00001384\n",
      "Epoch: 8170/20000, Loss: 0.00001382\n",
      "Epoch: 8180/20000, Loss: 0.00002530\n",
      "Epoch: 8190/20000, Loss: 0.00021382\n",
      "Epoch: 8200/20000, Loss: 0.00007554\n",
      "Epoch: 8210/20000, Loss: 0.00001790\n",
      "Epoch: 8220/20000, Loss: 0.00001883\n",
      "Epoch: 8230/20000, Loss: 0.00001631\n",
      "Epoch: 8240/20000, Loss: 0.00001386\n",
      "Epoch: 8250/20000, Loss: 0.00001306\n",
      "Epoch: 8260/20000, Loss: 0.00001303\n",
      "Epoch: 8270/20000, Loss: 0.00002371\n",
      "Epoch: 8280/20000, Loss: 0.00008382\n",
      "Epoch: 8290/20000, Loss: 0.00002285\n",
      "Epoch: 8300/20000, Loss: 0.00001734\n",
      "Epoch: 8310/20000, Loss: 0.00001698\n",
      "Epoch: 8320/20000, Loss: 0.00001418\n",
      "Epoch: 8330/20000, Loss: 0.00001803\n",
      "Epoch: 8340/20000, Loss: 0.00009300\n",
      "Epoch: 8350/20000, Loss: 0.00004646\n",
      "Epoch: 8360/20000, Loss: 0.00002753\n",
      "Epoch: 8370/20000, Loss: 0.00001711\n",
      "Epoch: 8380/20000, Loss: 0.00001260\n",
      "Epoch: 8390/20000, Loss: 0.00001275\n",
      "Epoch: 8400/20000, Loss: 0.00001695\n",
      "Epoch: 8410/20000, Loss: 0.00011573\n",
      "Epoch: 8420/20000, Loss: 0.00002816\n",
      "Epoch: 8430/20000, Loss: 0.00003045\n",
      "Epoch: 8440/20000, Loss: 0.00002148\n",
      "Epoch: 8450/20000, Loss: 0.00001361\n",
      "Epoch: 8460/20000, Loss: 0.00001273\n",
      "Epoch: 8470/20000, Loss: 0.00001271\n",
      "Epoch: 8480/20000, Loss: 0.00001252\n",
      "Epoch: 8490/20000, Loss: 0.00001269\n",
      "Epoch: 8500/20000, Loss: 0.00001983\n",
      "Epoch: 8510/20000, Loss: 0.00018150\n",
      "Epoch: 8520/20000, Loss: 0.00005818\n",
      "Epoch: 8530/20000, Loss: 0.00001770\n",
      "Epoch: 8540/20000, Loss: 0.00001814\n",
      "Epoch: 8550/20000, Loss: 0.00001461\n",
      "Epoch: 8560/20000, Loss: 0.00001272\n",
      "Epoch: 8570/20000, Loss: 0.00001268\n",
      "Epoch: 8580/20000, Loss: 0.00001255\n",
      "Epoch: 8590/20000, Loss: 0.00001453\n",
      "Epoch: 8600/20000, Loss: 0.00006374\n",
      "Epoch: 8610/20000, Loss: 0.00006634\n",
      "Epoch: 8620/20000, Loss: 0.00002213\n",
      "Epoch: 8630/20000, Loss: 0.00001837\n",
      "Epoch: 8640/20000, Loss: 0.00001515\n",
      "Epoch: 8650/20000, Loss: 0.00001261\n",
      "Epoch: 8660/20000, Loss: 0.00001224\n",
      "Epoch: 8670/20000, Loss: 0.00001236\n",
      "Epoch: 8680/20000, Loss: 0.00001246\n",
      "Epoch: 8690/20000, Loss: 0.00002209\n",
      "Epoch: 8700/20000, Loss: 0.00011190\n",
      "Epoch: 8710/20000, Loss: 0.00003806\n",
      "Epoch: 8720/20000, Loss: 0.00002666\n",
      "Epoch: 8730/20000, Loss: 0.00001475\n",
      "Epoch: 8740/20000, Loss: 0.00001275\n",
      "Epoch: 8750/20000, Loss: 0.00001227\n",
      "Epoch: 8760/20000, Loss: 0.00001324\n",
      "Epoch: 8770/20000, Loss: 0.00002918\n",
      "Epoch: 8780/20000, Loss: 0.00017784\n",
      "Epoch: 8790/20000, Loss: 0.00005216\n",
      "Epoch: 8800/20000, Loss: 0.00002771\n",
      "Epoch: 8810/20000, Loss: 0.00001737\n",
      "Epoch: 8820/20000, Loss: 0.00001418\n",
      "Epoch: 8830/20000, Loss: 0.00001253\n",
      "Epoch: 8840/20000, Loss: 0.00001232\n",
      "Epoch: 8850/20000, Loss: 0.00001258\n",
      "Epoch: 8860/20000, Loss: 0.00001349\n",
      "Epoch: 8870/20000, Loss: 0.00004351\n",
      "Epoch: 8880/20000, Loss: 0.00008757\n",
      "Epoch: 8890/20000, Loss: 0.00002156\n",
      "Epoch: 8900/20000, Loss: 0.00002255\n",
      "Epoch: 8910/20000, Loss: 0.00001493\n",
      "Epoch: 8920/20000, Loss: 0.00001395\n",
      "Epoch: 8930/20000, Loss: 0.00001280\n",
      "Epoch: 8940/20000, Loss: 0.00001217\n",
      "Epoch: 8950/20000, Loss: 0.00001364\n",
      "Epoch: 8960/20000, Loss: 0.00005831\n",
      "Epoch: 8970/20000, Loss: 0.00011265\n",
      "Epoch: 8980/20000, Loss: 0.00003187\n",
      "Epoch: 8990/20000, Loss: 0.00001373\n",
      "Epoch: 9000/20000, Loss: 0.00001284\n",
      "Epoch: 9010/20000, Loss: 0.00001198\n",
      "Epoch: 9020/20000, Loss: 0.00001242\n",
      "Epoch: 9030/20000, Loss: 0.00001199\n",
      "Epoch: 9040/20000, Loss: 0.00001196\n",
      "Epoch: 9050/20000, Loss: 0.00001260\n",
      "Epoch: 9060/20000, Loss: 0.00001633\n",
      "Epoch: 9070/20000, Loss: 0.00013560\n",
      "Epoch: 9080/20000, Loss: 0.00006239\n",
      "Epoch: 9090/20000, Loss: 0.00001950\n",
      "Epoch: 9100/20000, Loss: 0.00001969\n",
      "Epoch: 9110/20000, Loss: 0.00001446\n",
      "Epoch: 9120/20000, Loss: 0.00001219\n",
      "Epoch: 9130/20000, Loss: 0.00001187\n",
      "Epoch: 9140/20000, Loss: 0.00001160\n",
      "Epoch: 9150/20000, Loss: 0.00001163\n",
      "Epoch: 9160/20000, Loss: 0.00001177\n",
      "Epoch: 9170/20000, Loss: 0.00001545\n",
      "Epoch: 9180/20000, Loss: 0.00015422\n",
      "Epoch: 9190/20000, Loss: 0.00005522\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 9200/20000, Loss: 0.00003885\n",
      "Epoch: 9210/20000, Loss: 0.00001797\n",
      "Epoch: 9220/20000, Loss: 0.00001440\n",
      "Epoch: 9230/20000, Loss: 0.00001286\n",
      "Epoch: 9240/20000, Loss: 0.00001241\n",
      "Epoch: 9250/20000, Loss: 0.00001162\n",
      "Epoch: 9260/20000, Loss: 0.00001168\n",
      "Epoch: 9270/20000, Loss: 0.00001161\n",
      "Epoch: 9280/20000, Loss: 0.00001348\n",
      "Epoch: 9290/20000, Loss: 0.00007565\n",
      "Epoch: 9300/20000, Loss: 0.00003853\n",
      "Epoch: 9310/20000, Loss: 0.00003616\n",
      "Epoch: 9320/20000, Loss: 0.00001259\n",
      "Epoch: 9330/20000, Loss: 0.00001306\n",
      "Epoch: 9340/20000, Loss: 0.00001255\n",
      "Epoch: 9350/20000, Loss: 0.00001199\n",
      "Epoch: 9360/20000, Loss: 0.00001328\n",
      "Epoch: 9370/20000, Loss: 0.00002995\n",
      "Epoch: 9380/20000, Loss: 0.00018363\n",
      "Epoch: 9390/20000, Loss: 0.00006340\n",
      "Epoch: 9400/20000, Loss: 0.00002402\n",
      "Epoch: 9410/20000, Loss: 0.00001372\n",
      "Epoch: 9420/20000, Loss: 0.00001392\n",
      "Epoch: 9430/20000, Loss: 0.00001291\n",
      "Epoch: 9440/20000, Loss: 0.00001206\n",
      "Epoch: 9450/20000, Loss: 0.00001933\n",
      "Epoch: 9460/20000, Loss: 0.00001445\n",
      "Epoch: 9470/20000, Loss: 0.00001924\n",
      "Epoch: 9480/20000, Loss: 0.00005664\n",
      "Epoch: 9490/20000, Loss: 0.00003755\n",
      "Epoch: 9500/20000, Loss: 0.00001589\n",
      "Epoch: 9510/20000, Loss: 0.00001821\n",
      "Epoch: 9520/20000, Loss: 0.00001453\n",
      "Epoch: 9530/20000, Loss: 0.00001361\n",
      "Epoch: 9540/20000, Loss: 0.00002231\n",
      "Epoch: 9550/20000, Loss: 0.00011211\n",
      "Epoch: 9560/20000, Loss: 0.00002244\n",
      "Epoch: 9570/20000, Loss: 0.00001712\n",
      "Epoch: 9580/20000, Loss: 0.00001492\n",
      "Epoch: 9590/20000, Loss: 0.00001336\n",
      "Epoch: 9600/20000, Loss: 0.00001321\n",
      "Epoch: 9610/20000, Loss: 0.00001270\n",
      "Epoch: 9620/20000, Loss: 0.00002161\n",
      "Epoch: 9630/20000, Loss: 0.00011349\n",
      "Epoch: 9640/20000, Loss: 0.00003860\n",
      "Epoch: 9650/20000, Loss: 0.00001763\n",
      "Epoch: 9660/20000, Loss: 0.00001420\n",
      "Epoch: 9670/20000, Loss: 0.00001292\n",
      "Epoch: 9680/20000, Loss: 0.00001191\n",
      "Epoch: 9690/20000, Loss: 0.00001150\n",
      "Epoch: 9700/20000, Loss: 0.00001627\n",
      "Epoch: 9710/20000, Loss: 0.00015336\n",
      "Epoch: 9720/20000, Loss: 0.00005502\n",
      "Epoch: 9730/20000, Loss: 0.00003205\n",
      "Epoch: 9740/20000, Loss: 0.00001945\n",
      "Epoch: 9750/20000, Loss: 0.00001269\n",
      "Epoch: 9760/20000, Loss: 0.00001225\n",
      "Epoch: 9770/20000, Loss: 0.00001140\n",
      "Epoch: 9780/20000, Loss: 0.00001112\n",
      "Epoch: 9790/20000, Loss: 0.00001099\n",
      "Epoch: 9800/20000, Loss: 0.00001112\n",
      "Epoch: 9810/20000, Loss: 0.00001500\n",
      "Epoch: 9820/20000, Loss: 0.00010675\n",
      "Epoch: 9830/20000, Loss: 0.00010121\n",
      "Epoch: 9840/20000, Loss: 0.00002571\n",
      "Epoch: 9850/20000, Loss: 0.00002156\n",
      "Epoch: 9860/20000, Loss: 0.00001200\n",
      "Epoch: 9870/20000, Loss: 0.00001228\n",
      "Epoch: 9880/20000, Loss: 0.00001120\n",
      "Epoch: 9890/20000, Loss: 0.00001097\n",
      "Epoch: 9900/20000, Loss: 0.00001096\n",
      "Epoch: 9910/20000, Loss: 0.00001155\n",
      "Epoch: 9920/20000, Loss: 0.00007915\n",
      "Epoch: 9930/20000, Loss: 0.00002068\n",
      "Epoch: 9940/20000, Loss: 0.00004344\n",
      "Epoch: 9950/20000, Loss: 0.00003011\n",
      "Epoch: 9960/20000, Loss: 0.00001692\n",
      "Epoch: 9970/20000, Loss: 0.00001283\n",
      "Epoch: 9980/20000, Loss: 0.00001192\n",
      "Epoch: 9990/20000, Loss: 0.00001119\n",
      "Epoch: 10000/20000, Loss: 0.00001101\n",
      "Epoch: 10010/20000, Loss: 0.00001086\n",
      "Epoch: 10020/20000, Loss: 0.00001084\n",
      "Epoch: 10030/20000, Loss: 0.00001119\n",
      "Epoch: 10040/20000, Loss: 0.00001535\n",
      "Epoch: 10050/20000, Loss: 0.00001158\n",
      "Epoch: 10060/20000, Loss: 0.00001091\n",
      "Epoch: 10070/20000, Loss: 0.00001318\n",
      "Epoch: 10080/20000, Loss: 0.00001794\n",
      "Epoch: 10090/20000, Loss: 0.00001235\n",
      "Epoch: 10100/20000, Loss: 0.00001628\n",
      "Epoch: 10110/20000, Loss: 0.00009067\n",
      "Epoch: 10120/20000, Loss: 0.00003279\n",
      "Epoch: 10130/20000, Loss: 0.00003249\n",
      "Epoch: 10140/20000, Loss: 0.00001559\n",
      "Epoch: 10150/20000, Loss: 0.00001370\n",
      "Epoch: 10160/20000, Loss: 0.00001151\n",
      "Epoch: 10170/20000, Loss: 0.00001146\n",
      "Epoch: 10180/20000, Loss: 0.00001575\n",
      "Epoch: 10190/20000, Loss: 0.00006363\n",
      "Epoch: 10200/20000, Loss: 0.00007484\n",
      "Epoch: 10210/20000, Loss: 0.00003607\n",
      "Epoch: 10220/20000, Loss: 0.00001886\n",
      "Epoch: 10230/20000, Loss: 0.00001418\n",
      "Epoch: 10240/20000, Loss: 0.00001373\n",
      "Epoch: 10250/20000, Loss: 0.00001124\n",
      "Epoch: 10260/20000, Loss: 0.00001292\n",
      "Epoch: 10270/20000, Loss: 0.00004155\n",
      "Epoch: 10280/20000, Loss: 0.00014745\n",
      "Epoch: 10290/20000, Loss: 0.00002037\n",
      "Epoch: 10300/20000, Loss: 0.00002060\n",
      "Epoch: 10310/20000, Loss: 0.00001649\n",
      "Epoch: 10320/20000, Loss: 0.00001218\n",
      "Epoch: 10330/20000, Loss: 0.00001106\n",
      "Epoch: 10340/20000, Loss: 0.00001081\n",
      "Epoch: 10350/20000, Loss: 0.00001108\n",
      "Epoch: 10360/20000, Loss: 0.00002088\n",
      "Epoch: 10370/20000, Loss: 0.00005893\n",
      "Epoch: 10380/20000, Loss: 0.00001830\n",
      "Epoch: 10390/20000, Loss: 0.00001711\n",
      "Epoch: 10400/20000, Loss: 0.00001192\n",
      "Epoch: 10410/20000, Loss: 0.00001166\n",
      "Epoch: 10420/20000, Loss: 0.00002732\n",
      "Epoch: 10430/20000, Loss: 0.00014858\n",
      "Epoch: 10440/20000, Loss: 0.00002790\n",
      "Epoch: 10450/20000, Loss: 0.00002662\n",
      "Epoch: 10460/20000, Loss: 0.00001497\n",
      "Epoch: 10470/20000, Loss: 0.00001225\n",
      "Epoch: 10480/20000, Loss: 0.00001137\n",
      "Epoch: 10490/20000, Loss: 0.00001066\n",
      "Epoch: 10500/20000, Loss: 0.00001068\n",
      "Epoch: 10510/20000, Loss: 0.00001135\n",
      "Epoch: 10520/20000, Loss: 0.00002940\n",
      "Epoch: 10530/20000, Loss: 0.00021068\n",
      "Epoch: 10540/20000, Loss: 0.00004303\n",
      "Epoch: 10550/20000, Loss: 0.00002248\n",
      "Epoch: 10560/20000, Loss: 0.00002025\n",
      "Epoch: 10570/20000, Loss: 0.00001255\n",
      "Epoch: 10580/20000, Loss: 0.00001135\n",
      "Epoch: 10590/20000, Loss: 0.00001121\n",
      "Epoch: 10600/20000, Loss: 0.00001075\n",
      "Epoch: 10610/20000, Loss: 0.00001044\n",
      "Epoch: 10620/20000, Loss: 0.00001046\n",
      "Epoch: 10630/20000, Loss: 0.00001042\n",
      "Epoch: 10640/20000, Loss: 0.00001075\n",
      "Epoch: 10650/20000, Loss: 0.00002465\n",
      "Epoch: 10660/20000, Loss: 0.00017955\n",
      "Epoch: 10670/20000, Loss: 0.00015180\n",
      "Epoch: 10680/20000, Loss: 0.00004573\n",
      "Epoch: 10690/20000, Loss: 0.00001757\n",
      "Epoch: 10700/20000, Loss: 0.00001251\n",
      "Epoch: 10710/20000, Loss: 0.00001108\n",
      "Epoch: 10720/20000, Loss: 0.00001063\n",
      "Epoch: 10730/20000, Loss: 0.00001054\n",
      "Epoch: 10740/20000, Loss: 0.00001048\n",
      "Epoch: 10750/20000, Loss: 0.00001043\n",
      "Epoch: 10760/20000, Loss: 0.00001037\n",
      "Epoch: 10770/20000, Loss: 0.00001035\n",
      "Epoch: 10780/20000, Loss: 0.00001033\n",
      "Epoch: 10790/20000, Loss: 0.00001033\n",
      "Epoch: 10800/20000, Loss: 0.00001100\n",
      "Epoch: 10810/20000, Loss: 0.00006530\n",
      "Epoch: 10820/20000, Loss: 0.00005669\n",
      "Epoch: 10830/20000, Loss: 0.00003965\n",
      "Epoch: 10840/20000, Loss: 0.00001932\n",
      "Epoch: 10850/20000, Loss: 0.00001318\n",
      "Epoch: 10860/20000, Loss: 0.00001331\n",
      "Epoch: 10870/20000, Loss: 0.00001119\n",
      "Epoch: 10880/20000, Loss: 0.00001058\n",
      "Epoch: 10890/20000, Loss: 0.00001043\n",
      "Epoch: 10900/20000, Loss: 0.00001036\n",
      "Epoch: 10910/20000, Loss: 0.00001055\n",
      "Epoch: 10920/20000, Loss: 0.00001039\n",
      "Epoch: 10930/20000, Loss: 0.00001031\n",
      "Epoch: 10940/20000, Loss: 0.00001026\n",
      "Epoch: 10950/20000, Loss: 0.00001087\n",
      "Epoch: 10960/20000, Loss: 0.00005135\n",
      "Epoch: 10970/20000, Loss: 0.00008280\n",
      "Epoch: 10980/20000, Loss: 0.00005898\n",
      "Epoch: 10990/20000, Loss: 0.00002471\n",
      "Epoch: 11000/20000, Loss: 0.00001421\n",
      "Epoch: 11010/20000, Loss: 0.00001303\n",
      "Epoch: 11020/20000, Loss: 0.00001096\n",
      "Epoch: 11030/20000, Loss: 0.00001039\n",
      "Epoch: 11040/20000, Loss: 0.00001035\n",
      "Epoch: 11050/20000, Loss: 0.00001028\n",
      "Epoch: 11060/20000, Loss: 0.00001023\n",
      "Epoch: 11070/20000, Loss: 0.00001020\n",
      "Epoch: 11080/20000, Loss: 0.00001018\n",
      "Epoch: 11090/20000, Loss: 0.00001017\n",
      "Epoch: 11100/20000, Loss: 0.00001016\n",
      "Epoch: 11110/20000, Loss: 0.00001098\n",
      "Epoch: 11120/20000, Loss: 0.00002131\n",
      "Epoch: 11130/20000, Loss: 0.00032913\n",
      "Epoch: 11140/20000, Loss: 0.00004961\n",
      "Epoch: 11150/20000, Loss: 0.00002866\n",
      "Epoch: 11160/20000, Loss: 0.00002426\n",
      "Epoch: 11170/20000, Loss: 0.00001476\n",
      "Epoch: 11180/20000, Loss: 0.00001195\n",
      "Epoch: 11190/20000, Loss: 0.00001057\n",
      "Epoch: 11200/20000, Loss: 0.00001054\n",
      "Epoch: 11210/20000, Loss: 0.00001032\n",
      "Epoch: 11220/20000, Loss: 0.00001041\n",
      "Epoch: 11230/20000, Loss: 0.00001022\n",
      "Epoch: 11240/20000, Loss: 0.00001017\n",
      "Epoch: 11250/20000, Loss: 0.00001015\n",
      "Epoch: 11260/20000, Loss: 0.00001014\n",
      "Epoch: 11270/20000, Loss: 0.00001012\n",
      "Epoch: 11280/20000, Loss: 0.00001011\n",
      "Epoch: 11290/20000, Loss: 0.00001010\n",
      "Epoch: 11300/20000, Loss: 0.00001021\n",
      "Epoch: 11310/20000, Loss: 0.00001998\n",
      "Epoch: 11320/20000, Loss: 0.00037893\n",
      "Epoch: 11330/20000, Loss: 0.00007384\n",
      "Epoch: 11340/20000, Loss: 0.00002858\n",
      "Epoch: 11350/20000, Loss: 0.00001535\n",
      "Epoch: 11360/20000, Loss: 0.00001155\n",
      "Epoch: 11370/20000, Loss: 0.00001098\n",
      "Epoch: 11380/20000, Loss: 0.00001046\n",
      "Epoch: 11390/20000, Loss: 0.00001022\n",
      "Epoch: 11400/20000, Loss: 0.00001017\n",
      "Epoch: 11410/20000, Loss: 0.00001012\n",
      "Epoch: 11420/20000, Loss: 0.00001009\n",
      "Epoch: 11430/20000, Loss: 0.00001007\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 11440/20000, Loss: 0.00001012\n",
      "Epoch: 11450/20000, Loss: 0.00001028\n",
      "Epoch: 11460/20000, Loss: 0.00001004\n",
      "Epoch: 11470/20000, Loss: 0.00001003\n",
      "Epoch: 11480/20000, Loss: 0.00001009\n",
      "Epoch: 11490/20000, Loss: 0.00001922\n",
      "Epoch: 11500/20000, Loss: 0.00046367\n",
      "Epoch: 11510/20000, Loss: 0.00006672\n",
      "Epoch: 11520/20000, Loss: 0.00002522\n",
      "Epoch: 11530/20000, Loss: 0.00001528\n",
      "Epoch: 11540/20000, Loss: 0.00001102\n",
      "Epoch: 11550/20000, Loss: 0.00001056\n",
      "Epoch: 11560/20000, Loss: 0.00001059\n",
      "Epoch: 11570/20000, Loss: 0.00001035\n",
      "Epoch: 11580/20000, Loss: 0.00001010\n",
      "Epoch: 11590/20000, Loss: 0.00001008\n",
      "Epoch: 11600/20000, Loss: 0.00001006\n",
      "Epoch: 11610/20000, Loss: 0.00001063\n",
      "Epoch: 11620/20000, Loss: 0.00001016\n",
      "Epoch: 11630/20000, Loss: 0.00001003\n",
      "Epoch: 11640/20000, Loss: 0.00001000\n",
      "Epoch: 11650/20000, Loss: 0.00000999\n",
      "Epoch: 11660/20000, Loss: 0.00000997\n",
      "Epoch: 11670/20000, Loss: 0.00001005\n",
      "Epoch: 11680/20000, Loss: 0.00002026\n",
      "Epoch: 11690/20000, Loss: 0.00022596\n",
      "Epoch: 11700/20000, Loss: 0.00005504\n",
      "Epoch: 11710/20000, Loss: 0.00001788\n",
      "Epoch: 11720/20000, Loss: 0.00001619\n",
      "Epoch: 11730/20000, Loss: 0.00001322\n",
      "Epoch: 11740/20000, Loss: 0.00001065\n",
      "Epoch: 11750/20000, Loss: 0.00001032\n",
      "Epoch: 11760/20000, Loss: 0.00001007\n",
      "Epoch: 11770/20000, Loss: 0.00000999\n",
      "Epoch: 11780/20000, Loss: 0.00000996\n",
      "Epoch: 11790/20000, Loss: 0.00000995\n",
      "Epoch: 11800/20000, Loss: 0.00000997\n",
      "Epoch: 11810/20000, Loss: 0.00001093\n",
      "Epoch: 11820/20000, Loss: 0.00006133\n",
      "Epoch: 11830/20000, Loss: 0.00004593\n",
      "Epoch: 11840/20000, Loss: 0.00003467\n",
      "Epoch: 11850/20000, Loss: 0.00002234\n",
      "Epoch: 11860/20000, Loss: 0.00001265\n",
      "Epoch: 11870/20000, Loss: 0.00001096\n",
      "Epoch: 11880/20000, Loss: 0.00001003\n",
      "Epoch: 11890/20000, Loss: 0.00001004\n",
      "Epoch: 11900/20000, Loss: 0.00001031\n",
      "Epoch: 11910/20000, Loss: 0.00001009\n",
      "Epoch: 11920/20000, Loss: 0.00000998\n",
      "Epoch: 11930/20000, Loss: 0.00000988\n",
      "Epoch: 11940/20000, Loss: 0.00000989\n",
      "Epoch: 11950/20000, Loss: 0.00001014\n",
      "Epoch: 11960/20000, Loss: 0.00003006\n",
      "Epoch: 11970/20000, Loss: 0.00016728\n",
      "Epoch: 11980/20000, Loss: 0.00008515\n",
      "Epoch: 11990/20000, Loss: 0.00002459\n",
      "Epoch: 12000/20000, Loss: 0.00001220\n",
      "Epoch: 12010/20000, Loss: 0.00001310\n",
      "Epoch: 12020/20000, Loss: 0.00001026\n",
      "Epoch: 12030/20000, Loss: 0.00001022\n",
      "Epoch: 12040/20000, Loss: 0.00001006\n",
      "Epoch: 12050/20000, Loss: 0.00000994\n",
      "Epoch: 12060/20000, Loss: 0.00000988\n",
      "Epoch: 12070/20000, Loss: 0.00000986\n",
      "Epoch: 12080/20000, Loss: 0.00001033\n",
      "Epoch: 12090/20000, Loss: 0.00001051\n",
      "Epoch: 12100/20000, Loss: 0.00003369\n",
      "Epoch: 12110/20000, Loss: 0.00017655\n",
      "Epoch: 12120/20000, Loss: 0.00003413\n",
      "Epoch: 12130/20000, Loss: 0.00002501\n",
      "Epoch: 12140/20000, Loss: 0.00001482\n",
      "Epoch: 12150/20000, Loss: 0.00001169\n",
      "Epoch: 12160/20000, Loss: 0.00001125\n",
      "Epoch: 12170/20000, Loss: 0.00001015\n",
      "Epoch: 12180/20000, Loss: 0.00001005\n",
      "Epoch: 12190/20000, Loss: 0.00000992\n",
      "Epoch: 12200/20000, Loss: 0.00000984\n",
      "Epoch: 12210/20000, Loss: 0.00000983\n",
      "Epoch: 12220/20000, Loss: 0.00000981\n",
      "Epoch: 12230/20000, Loss: 0.00000980\n",
      "Epoch: 12240/20000, Loss: 0.00000979\n",
      "Epoch: 12250/20000, Loss: 0.00001014\n",
      "Epoch: 12260/20000, Loss: 0.00005332\n",
      "Epoch: 12270/20000, Loss: 0.00006221\n",
      "Epoch: 12280/20000, Loss: 0.00002904\n",
      "Epoch: 12290/20000, Loss: 0.00001662\n",
      "Epoch: 12300/20000, Loss: 0.00001715\n",
      "Epoch: 12310/20000, Loss: 0.00001287\n",
      "Epoch: 12320/20000, Loss: 0.00001085\n",
      "Epoch: 12330/20000, Loss: 0.00001026\n",
      "Epoch: 12340/20000, Loss: 0.00000998\n",
      "Epoch: 12350/20000, Loss: 0.00000984\n",
      "Epoch: 12360/20000, Loss: 0.00000982\n",
      "Epoch: 12370/20000, Loss: 0.00000980\n",
      "Epoch: 12380/20000, Loss: 0.00000982\n",
      "Epoch: 12390/20000, Loss: 0.00001117\n",
      "Epoch: 12400/20000, Loss: 0.00008941\n",
      "Epoch: 12410/20000, Loss: 0.00003785\n",
      "Epoch: 12420/20000, Loss: 0.00002292\n",
      "Epoch: 12430/20000, Loss: 0.00002341\n",
      "Epoch: 12440/20000, Loss: 0.00001267\n",
      "Epoch: 12450/20000, Loss: 0.00001071\n",
      "Epoch: 12460/20000, Loss: 0.00001038\n",
      "Epoch: 12470/20000, Loss: 0.00001008\n",
      "Epoch: 12480/20000, Loss: 0.00000978\n",
      "Epoch: 12490/20000, Loss: 0.00000982\n",
      "Epoch: 12500/20000, Loss: 0.00000981\n",
      "Epoch: 12510/20000, Loss: 0.00001086\n",
      "Epoch: 12520/20000, Loss: 0.00002215\n",
      "Epoch: 12530/20000, Loss: 0.00024029\n",
      "Epoch: 12540/20000, Loss: 0.00004078\n",
      "Epoch: 12550/20000, Loss: 0.00003426\n",
      "Epoch: 12560/20000, Loss: 0.00001532\n",
      "Epoch: 12570/20000, Loss: 0.00001075\n",
      "Epoch: 12580/20000, Loss: 0.00001087\n",
      "Epoch: 12590/20000, Loss: 0.00001028\n",
      "Epoch: 12600/20000, Loss: 0.00000988\n",
      "Epoch: 12610/20000, Loss: 0.00000976\n",
      "Epoch: 12620/20000, Loss: 0.00000973\n",
      "Epoch: 12630/20000, Loss: 0.00000972\n",
      "Epoch: 12640/20000, Loss: 0.00000992\n",
      "Epoch: 12650/20000, Loss: 0.00001964\n",
      "Epoch: 12660/20000, Loss: 0.00022690\n",
      "Epoch: 12670/20000, Loss: 0.00004978\n",
      "Epoch: 12680/20000, Loss: 0.00003352\n",
      "Epoch: 12690/20000, Loss: 0.00001628\n",
      "Epoch: 12700/20000, Loss: 0.00001075\n",
      "Epoch: 12710/20000, Loss: 0.00001110\n",
      "Epoch: 12720/20000, Loss: 0.00000980\n",
      "Epoch: 12730/20000, Loss: 0.00001002\n",
      "Epoch: 12740/20000, Loss: 0.00000976\n",
      "Epoch: 12750/20000, Loss: 0.00000984\n",
      "Epoch: 12760/20000, Loss: 0.00000973\n",
      "Epoch: 12770/20000, Loss: 0.00001044\n",
      "Epoch: 12780/20000, Loss: 0.00004173\n",
      "Epoch: 12790/20000, Loss: 0.00008236\n",
      "Epoch: 12800/20000, Loss: 0.00004406\n",
      "Epoch: 12810/20000, Loss: 0.00001138\n",
      "Epoch: 12820/20000, Loss: 0.00001607\n",
      "Epoch: 12830/20000, Loss: 0.00001120\n",
      "Epoch: 12840/20000, Loss: 0.00000987\n",
      "Epoch: 12850/20000, Loss: 0.00000978\n",
      "Epoch: 12860/20000, Loss: 0.00000975\n",
      "Epoch: 12870/20000, Loss: 0.00000967\n",
      "Epoch: 12880/20000, Loss: 0.00000965\n",
      "Epoch: 12890/20000, Loss: 0.00000965\n",
      "Epoch: 12900/20000, Loss: 0.00000978\n",
      "Epoch: 12910/20000, Loss: 0.00001728\n",
      "Epoch: 12920/20000, Loss: 0.00032542\n",
      "Epoch: 12930/20000, Loss: 0.00005640\n",
      "Epoch: 12940/20000, Loss: 0.00004447\n",
      "Epoch: 12950/20000, Loss: 0.00001097\n",
      "Epoch: 12960/20000, Loss: 0.00001362\n",
      "Epoch: 12970/20000, Loss: 0.00001024\n",
      "Epoch: 12980/20000, Loss: 0.00001033\n",
      "Epoch: 12990/20000, Loss: 0.00000969\n",
      "Epoch: 13000/20000, Loss: 0.00000968\n",
      "Epoch: 13010/20000, Loss: 0.00000967\n",
      "Epoch: 13020/20000, Loss: 0.00000968\n",
      "Epoch: 13030/20000, Loss: 0.00001012\n",
      "Epoch: 13040/20000, Loss: 0.00001005\n",
      "Epoch: 13050/20000, Loss: 0.00002645\n",
      "Epoch: 13060/20000, Loss: 0.00009944\n",
      "Epoch: 13070/20000, Loss: 0.00001720\n",
      "Epoch: 13080/20000, Loss: 0.00002821\n",
      "Epoch: 13090/20000, Loss: 0.00001034\n",
      "Epoch: 13100/20000, Loss: 0.00001075\n",
      "Epoch: 13110/20000, Loss: 0.00001063\n",
      "Epoch: 13120/20000, Loss: 0.00001004\n",
      "Epoch: 13130/20000, Loss: 0.00000979\n",
      "Epoch: 13140/20000, Loss: 0.00000975\n",
      "Epoch: 13150/20000, Loss: 0.00001159\n",
      "Epoch: 13160/20000, Loss: 0.00008289\n",
      "Epoch: 13170/20000, Loss: 0.00001324\n",
      "Epoch: 13180/20000, Loss: 0.00005013\n",
      "Epoch: 13190/20000, Loss: 0.00001304\n",
      "Epoch: 13200/20000, Loss: 0.00001237\n",
      "Epoch: 13210/20000, Loss: 0.00001165\n",
      "Epoch: 13220/20000, Loss: 0.00001001\n",
      "Epoch: 13230/20000, Loss: 0.00000968\n",
      "Epoch: 13240/20000, Loss: 0.00000964\n",
      "Epoch: 13250/20000, Loss: 0.00000961\n",
      "Epoch: 13260/20000, Loss: 0.00000959\n",
      "Epoch: 13270/20000, Loss: 0.00000956\n",
      "Epoch: 13280/20000, Loss: 0.00000999\n",
      "Epoch: 13290/20000, Loss: 0.00002396\n",
      "Epoch: 13300/20000, Loss: 0.00014807\n",
      "Epoch: 13310/20000, Loss: 0.00004533\n",
      "Epoch: 13320/20000, Loss: 0.00001225\n",
      "Epoch: 13330/20000, Loss: 0.00001740\n",
      "Epoch: 13340/20000, Loss: 0.00001062\n",
      "Epoch: 13350/20000, Loss: 0.00001092\n",
      "Epoch: 13360/20000, Loss: 0.00000979\n",
      "Epoch: 13370/20000, Loss: 0.00000963\n",
      "Epoch: 13380/20000, Loss: 0.00000971\n",
      "Epoch: 13390/20000, Loss: 0.00001244\n",
      "Epoch: 13400/20000, Loss: 0.00013892\n",
      "Epoch: 13410/20000, Loss: 0.00005196\n",
      "Epoch: 13420/20000, Loss: 0.00003960\n",
      "Epoch: 13430/20000, Loss: 0.00001047\n",
      "Epoch: 13440/20000, Loss: 0.00001187\n",
      "Epoch: 13450/20000, Loss: 0.00001117\n",
      "Epoch: 13460/20000, Loss: 0.00001023\n",
      "Epoch: 13470/20000, Loss: 0.00000977\n",
      "Epoch: 13480/20000, Loss: 0.00000956\n",
      "Epoch: 13490/20000, Loss: 0.00000957\n",
      "Epoch: 13500/20000, Loss: 0.00000953\n",
      "Epoch: 13510/20000, Loss: 0.00000959\n",
      "Epoch: 13520/20000, Loss: 0.00001017\n",
      "Epoch: 13530/20000, Loss: 0.00001849\n",
      "Epoch: 13540/20000, Loss: 0.00023556\n",
      "Epoch: 13550/20000, Loss: 0.00004091\n",
      "Epoch: 13560/20000, Loss: 0.00003021\n",
      "Epoch: 13570/20000, Loss: 0.00001278\n",
      "Epoch: 13580/20000, Loss: 0.00001106\n",
      "Epoch: 13590/20000, Loss: 0.00001114\n",
      "Epoch: 13600/20000, Loss: 0.00001025\n",
      "Epoch: 13610/20000, Loss: 0.00000971\n",
      "Epoch: 13620/20000, Loss: 0.00000963\n",
      "Epoch: 13630/20000, Loss: 0.00000974\n",
      "Epoch: 13640/20000, Loss: 0.00001312\n",
      "Epoch: 13650/20000, Loss: 0.00010054\n",
      "Epoch: 13660/20000, Loss: 0.00005275\n",
      "Epoch: 13670/20000, Loss: 0.00002507\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 13680/20000, Loss: 0.00001278\n",
      "Epoch: 13690/20000, Loss: 0.00001078\n",
      "Epoch: 13700/20000, Loss: 0.00001123\n",
      "Epoch: 13710/20000, Loss: 0.00001101\n",
      "Epoch: 13720/20000, Loss: 0.00001786\n",
      "Epoch: 13730/20000, Loss: 0.00010555\n",
      "Epoch: 13740/20000, Loss: 0.00002411\n",
      "Epoch: 13750/20000, Loss: 0.00001796\n",
      "Epoch: 13760/20000, Loss: 0.00001342\n",
      "Epoch: 13770/20000, Loss: 0.00001156\n",
      "Epoch: 13780/20000, Loss: 0.00001041\n",
      "Epoch: 13790/20000, Loss: 0.00000998\n",
      "Epoch: 13800/20000, Loss: 0.00001112\n",
      "Epoch: 13810/20000, Loss: 0.00003033\n",
      "Epoch: 13820/20000, Loss: 0.00014066\n",
      "Epoch: 13830/20000, Loss: 0.00003536\n",
      "Epoch: 13840/20000, Loss: 0.00001140\n",
      "Epoch: 13850/20000, Loss: 0.00001035\n",
      "Epoch: 13860/20000, Loss: 0.00001013\n",
      "Epoch: 13870/20000, Loss: 0.00001026\n",
      "Epoch: 13880/20000, Loss: 0.00000984\n",
      "Epoch: 13890/20000, Loss: 0.00001009\n",
      "Epoch: 13900/20000, Loss: 0.00001490\n",
      "Epoch: 13910/20000, Loss: 0.00008385\n",
      "Epoch: 13920/20000, Loss: 0.00006486\n",
      "Epoch: 13930/20000, Loss: 0.00004393\n",
      "Epoch: 13940/20000, Loss: 0.00002283\n",
      "Epoch: 13950/20000, Loss: 0.00001092\n",
      "Epoch: 13960/20000, Loss: 0.00001283\n",
      "Epoch: 13970/20000, Loss: 0.00001100\n",
      "Epoch: 13980/20000, Loss: 0.00001463\n",
      "Epoch: 13990/20000, Loss: 0.00008191\n",
      "Epoch: 14000/20000, Loss: 0.00001581\n",
      "Epoch: 14010/20000, Loss: 0.00001913\n",
      "Epoch: 14020/20000, Loss: 0.00001538\n",
      "Epoch: 14030/20000, Loss: 0.00001232\n",
      "Epoch: 14040/20000, Loss: 0.00001025\n",
      "Epoch: 14050/20000, Loss: 0.00000964\n",
      "Epoch: 14060/20000, Loss: 0.00001023\n",
      "Epoch: 14070/20000, Loss: 0.00001670\n",
      "Epoch: 14080/20000, Loss: 0.00015351\n",
      "Epoch: 14090/20000, Loss: 0.00005464\n",
      "Epoch: 14100/20000, Loss: 0.00003061\n",
      "Epoch: 14110/20000, Loss: 0.00001247\n",
      "Epoch: 14120/20000, Loss: 0.00001024\n",
      "Epoch: 14130/20000, Loss: 0.00000954\n",
      "Epoch: 14140/20000, Loss: 0.00000987\n",
      "Epoch: 14150/20000, Loss: 0.00000997\n",
      "Epoch: 14160/20000, Loss: 0.00001197\n",
      "Epoch: 14170/20000, Loss: 0.00005763\n",
      "Epoch: 14180/20000, Loss: 0.00001826\n",
      "Epoch: 14190/20000, Loss: 0.00001219\n",
      "Epoch: 14200/20000, Loss: 0.00001078\n",
      "Epoch: 14210/20000, Loss: 0.00000979\n",
      "Epoch: 14220/20000, Loss: 0.00001066\n",
      "Epoch: 14230/20000, Loss: 0.00009782\n",
      "Epoch: 14240/20000, Loss: 0.00006325\n",
      "Epoch: 14250/20000, Loss: 0.00001510\n",
      "Epoch: 14260/20000, Loss: 0.00002413\n",
      "Epoch: 14270/20000, Loss: 0.00001268\n",
      "Epoch: 14280/20000, Loss: 0.00001134\n",
      "Epoch: 14290/20000, Loss: 0.00001000\n",
      "Epoch: 14300/20000, Loss: 0.00000983\n",
      "Epoch: 14310/20000, Loss: 0.00000962\n",
      "Epoch: 14320/20000, Loss: 0.00000945\n",
      "Epoch: 14330/20000, Loss: 0.00000943\n",
      "Epoch: 14340/20000, Loss: 0.00000941\n",
      "Epoch: 14350/20000, Loss: 0.00000948\n",
      "Epoch: 14360/20000, Loss: 0.00001222\n",
      "Epoch: 14370/20000, Loss: 0.00013358\n",
      "Epoch: 14380/20000, Loss: 0.00005654\n",
      "Epoch: 14390/20000, Loss: 0.00001778\n",
      "Epoch: 14400/20000, Loss: 0.00002207\n",
      "Epoch: 14410/20000, Loss: 0.00001219\n",
      "Epoch: 14420/20000, Loss: 0.00001099\n",
      "Epoch: 14430/20000, Loss: 0.00000982\n",
      "Epoch: 14440/20000, Loss: 0.00000992\n",
      "Epoch: 14450/20000, Loss: 0.00000958\n",
      "Epoch: 14460/20000, Loss: 0.00000954\n",
      "Epoch: 14470/20000, Loss: 0.00001059\n",
      "Epoch: 14480/20000, Loss: 0.00004257\n",
      "Epoch: 14490/20000, Loss: 0.00006535\n",
      "Epoch: 14500/20000, Loss: 0.00002511\n",
      "Epoch: 14510/20000, Loss: 0.00002384\n",
      "Epoch: 14520/20000, Loss: 0.00001180\n",
      "Epoch: 14530/20000, Loss: 0.00000957\n",
      "Epoch: 14540/20000, Loss: 0.00000948\n",
      "Epoch: 14550/20000, Loss: 0.00000947\n",
      "Epoch: 14560/20000, Loss: 0.00000954\n",
      "Epoch: 14570/20000, Loss: 0.00000962\n",
      "Epoch: 14580/20000, Loss: 0.00001402\n",
      "Epoch: 14590/20000, Loss: 0.00014734\n",
      "Epoch: 14600/20000, Loss: 0.00005535\n",
      "Epoch: 14610/20000, Loss: 0.00002452\n",
      "Epoch: 14620/20000, Loss: 0.00001349\n",
      "Epoch: 14630/20000, Loss: 0.00001325\n",
      "Epoch: 14640/20000, Loss: 0.00000974\n",
      "Epoch: 14650/20000, Loss: 0.00000967\n",
      "Epoch: 14660/20000, Loss: 0.00000942\n",
      "Epoch: 14670/20000, Loss: 0.00000941\n",
      "Epoch: 14680/20000, Loss: 0.00000971\n",
      "Epoch: 14690/20000, Loss: 0.00002096\n",
      "Epoch: 14700/20000, Loss: 0.00018408\n",
      "Epoch: 14710/20000, Loss: 0.00001841\n",
      "Epoch: 14720/20000, Loss: 0.00002624\n",
      "Epoch: 14730/20000, Loss: 0.00001268\n",
      "Epoch: 14740/20000, Loss: 0.00000998\n",
      "Epoch: 14750/20000, Loss: 0.00001008\n",
      "Epoch: 14760/20000, Loss: 0.00000969\n",
      "Epoch: 14770/20000, Loss: 0.00000945\n",
      "Epoch: 14780/20000, Loss: 0.00000952\n",
      "Epoch: 14790/20000, Loss: 0.00001455\n",
      "Epoch: 14800/20000, Loss: 0.00016076\n",
      "Epoch: 14810/20000, Loss: 0.00004214\n",
      "Epoch: 14820/20000, Loss: 0.00001601\n",
      "Epoch: 14830/20000, Loss: 0.00001774\n",
      "Epoch: 14840/20000, Loss: 0.00001031\n",
      "Epoch: 14850/20000, Loss: 0.00000972\n",
      "Epoch: 14860/20000, Loss: 0.00001002\n",
      "Epoch: 14870/20000, Loss: 0.00000944\n",
      "Epoch: 14880/20000, Loss: 0.00000937\n",
      "Epoch: 14890/20000, Loss: 0.00000956\n",
      "Epoch: 14900/20000, Loss: 0.00001714\n",
      "Epoch: 14910/20000, Loss: 0.00023724\n",
      "Epoch: 14920/20000, Loss: 0.00004211\n",
      "Epoch: 14930/20000, Loss: 0.00003317\n",
      "Epoch: 14940/20000, Loss: 0.00001172\n",
      "Epoch: 14950/20000, Loss: 0.00001203\n",
      "Epoch: 14960/20000, Loss: 0.00001062\n",
      "Epoch: 14970/20000, Loss: 0.00000954\n",
      "Epoch: 14980/20000, Loss: 0.00000939\n",
      "Epoch: 14990/20000, Loss: 0.00000934\n",
      "Epoch: 15000/20000, Loss: 0.00000936\n",
      "Epoch: 15010/20000, Loss: 0.00000980\n",
      "Epoch: 15020/20000, Loss: 0.00001346\n",
      "Epoch: 15030/20000, Loss: 0.00014324\n",
      "Epoch: 15040/20000, Loss: 0.00004993\n",
      "Epoch: 15050/20000, Loss: 0.00001266\n",
      "Epoch: 15060/20000, Loss: 0.00001597\n",
      "Epoch: 15070/20000, Loss: 0.00001104\n",
      "Epoch: 15080/20000, Loss: 0.00000948\n",
      "Epoch: 15090/20000, Loss: 0.00000995\n",
      "Epoch: 15100/20000, Loss: 0.00000947\n",
      "Epoch: 15110/20000, Loss: 0.00000935\n",
      "Epoch: 15120/20000, Loss: 0.00000939\n",
      "Epoch: 15130/20000, Loss: 0.00001181\n",
      "Epoch: 15140/20000, Loss: 0.00014263\n",
      "Epoch: 15150/20000, Loss: 0.00008599\n",
      "Epoch: 15160/20000, Loss: 0.00001175\n",
      "Epoch: 15170/20000, Loss: 0.00001996\n",
      "Epoch: 15180/20000, Loss: 0.00001037\n",
      "Epoch: 15190/20000, Loss: 0.00001106\n",
      "Epoch: 15200/20000, Loss: 0.00000972\n",
      "Epoch: 15210/20000, Loss: 0.00000941\n",
      "Epoch: 15220/20000, Loss: 0.00000931\n",
      "Epoch: 15230/20000, Loss: 0.00000929\n",
      "Epoch: 15240/20000, Loss: 0.00000933\n",
      "Epoch: 15250/20000, Loss: 0.00001031\n",
      "Epoch: 15260/20000, Loss: 0.00006005\n",
      "Epoch: 15270/20000, Loss: 0.00005697\n",
      "Epoch: 15280/20000, Loss: 0.00003841\n",
      "Epoch: 15290/20000, Loss: 0.00001035\n",
      "Epoch: 15300/20000, Loss: 0.00001305\n",
      "Epoch: 15310/20000, Loss: 0.00000986\n",
      "Epoch: 15320/20000, Loss: 0.00001004\n",
      "Epoch: 15330/20000, Loss: 0.00000946\n",
      "Epoch: 15340/20000, Loss: 0.00000939\n",
      "Epoch: 15350/20000, Loss: 0.00000972\n",
      "Epoch: 15360/20000, Loss: 0.00001655\n",
      "Epoch: 15370/20000, Loss: 0.00015476\n",
      "Epoch: 15380/20000, Loss: 0.00005268\n",
      "Epoch: 15390/20000, Loss: 0.00001638\n",
      "Epoch: 15400/20000, Loss: 0.00001264\n",
      "Epoch: 15410/20000, Loss: 0.00001175\n",
      "Epoch: 15420/20000, Loss: 0.00001034\n",
      "Epoch: 15430/20000, Loss: 0.00000963\n",
      "Epoch: 15440/20000, Loss: 0.00000930\n",
      "Epoch: 15450/20000, Loss: 0.00000929\n",
      "Epoch: 15460/20000, Loss: 0.00000929\n",
      "Epoch: 15470/20000, Loss: 0.00001013\n",
      "Epoch: 15480/20000, Loss: 0.00006226\n",
      "Epoch: 15490/20000, Loss: 0.00003044\n",
      "Epoch: 15500/20000, Loss: 0.00007076\n",
      "Epoch: 15510/20000, Loss: 0.00001222\n",
      "Epoch: 15520/20000, Loss: 0.00001564\n",
      "Epoch: 15530/20000, Loss: 0.00001042\n",
      "Epoch: 15540/20000, Loss: 0.00001029\n",
      "Epoch: 15550/20000, Loss: 0.00000930\n",
      "Epoch: 15560/20000, Loss: 0.00000936\n",
      "Epoch: 15570/20000, Loss: 0.00000932\n",
      "Epoch: 15580/20000, Loss: 0.00000927\n",
      "Epoch: 15590/20000, Loss: 0.00000929\n",
      "Epoch: 15600/20000, Loss: 0.00001033\n",
      "Epoch: 15610/20000, Loss: 0.00007124\n",
      "Epoch: 15620/20000, Loss: 0.00003015\n",
      "Epoch: 15630/20000, Loss: 0.00003543\n",
      "Epoch: 15640/20000, Loss: 0.00001042\n",
      "Epoch: 15650/20000, Loss: 0.00001305\n",
      "Epoch: 15660/20000, Loss: 0.00001019\n",
      "Epoch: 15670/20000, Loss: 0.00000934\n",
      "Epoch: 15680/20000, Loss: 0.00000925\n",
      "Epoch: 15690/20000, Loss: 0.00000923\n",
      "Epoch: 15700/20000, Loss: 0.00000924\n",
      "Epoch: 15710/20000, Loss: 0.00000922\n",
      "Epoch: 15720/20000, Loss: 0.00000920\n",
      "Epoch: 15730/20000, Loss: 0.00000925\n",
      "Epoch: 15740/20000, Loss: 0.00002408\n",
      "Epoch: 15750/20000, Loss: 0.00025468\n",
      "Epoch: 15760/20000, Loss: 0.00010091\n",
      "Epoch: 15770/20000, Loss: 0.00001826\n",
      "Epoch: 15780/20000, Loss: 0.00001315\n",
      "Epoch: 15790/20000, Loss: 0.00001133\n",
      "Epoch: 15800/20000, Loss: 0.00000990\n",
      "Epoch: 15810/20000, Loss: 0.00000960\n",
      "Epoch: 15820/20000, Loss: 0.00000932\n",
      "Epoch: 15830/20000, Loss: 0.00000934\n",
      "Epoch: 15840/20000, Loss: 0.00000931\n",
      "Epoch: 15850/20000, Loss: 0.00000928\n",
      "Epoch: 15860/20000, Loss: 0.00000948\n",
      "Epoch: 15870/20000, Loss: 0.00000941\n",
      "Epoch: 15880/20000, Loss: 0.00000925\n",
      "Epoch: 15890/20000, Loss: 0.00000926\n",
      "Epoch: 15900/20000, Loss: 0.00000923\n",
      "Epoch: 15910/20000, Loss: 0.00000921\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 15920/20000, Loss: 0.00000920\n",
      "Epoch: 15930/20000, Loss: 0.00000919\n",
      "Epoch: 15940/20000, Loss: 0.00000931\n",
      "Epoch: 15950/20000, Loss: 0.00002561\n",
      "Epoch: 15960/20000, Loss: 0.00005045\n",
      "Epoch: 15970/20000, Loss: 0.00005393\n",
      "Epoch: 15980/20000, Loss: 0.00001215\n",
      "Epoch: 15990/20000, Loss: 0.00001169\n",
      "Epoch: 16000/20000, Loss: 0.00001136\n",
      "Epoch: 16010/20000, Loss: 0.00000927\n",
      "Epoch: 16020/20000, Loss: 0.00000950\n",
      "Epoch: 16030/20000, Loss: 0.00000922\n",
      "Epoch: 16040/20000, Loss: 0.00000920\n",
      "Epoch: 16050/20000, Loss: 0.00000920\n",
      "Epoch: 16060/20000, Loss: 0.00000920\n",
      "Epoch: 16070/20000, Loss: 0.00000960\n",
      "Epoch: 16080/20000, Loss: 0.00003463\n",
      "Epoch: 16090/20000, Loss: 0.00012146\n",
      "Epoch: 16100/20000, Loss: 0.00004707\n",
      "Epoch: 16110/20000, Loss: 0.00001635\n",
      "Epoch: 16120/20000, Loss: 0.00001607\n",
      "Epoch: 16130/20000, Loss: 0.00001041\n",
      "Epoch: 16140/20000, Loss: 0.00001043\n",
      "Epoch: 16150/20000, Loss: 0.00000933\n",
      "Epoch: 16160/20000, Loss: 0.00000924\n",
      "Epoch: 16170/20000, Loss: 0.00000922\n",
      "Epoch: 16180/20000, Loss: 0.00000919\n",
      "Epoch: 16190/20000, Loss: 0.00000918\n",
      "Epoch: 16200/20000, Loss: 0.00000917\n",
      "Epoch: 16210/20000, Loss: 0.00000916\n",
      "Epoch: 16220/20000, Loss: 0.00000944\n",
      "Epoch: 16230/20000, Loss: 0.00000945\n",
      "Epoch: 16240/20000, Loss: 0.00001317\n",
      "Epoch: 16250/20000, Loss: 0.00028610\n",
      "Epoch: 16260/20000, Loss: 0.00008018\n",
      "Epoch: 16270/20000, Loss: 0.00005302\n",
      "Epoch: 16280/20000, Loss: 0.00001981\n",
      "Epoch: 16290/20000, Loss: 0.00001065\n",
      "Epoch: 16300/20000, Loss: 0.00000945\n",
      "Epoch: 16310/20000, Loss: 0.00000970\n",
      "Epoch: 16320/20000, Loss: 0.00000940\n",
      "Epoch: 16330/20000, Loss: 0.00000919\n",
      "Epoch: 16340/20000, Loss: 0.00000921\n",
      "Epoch: 16350/20000, Loss: 0.00000918\n",
      "Epoch: 16360/20000, Loss: 0.00000919\n",
      "Epoch: 16370/20000, Loss: 0.00000947\n",
      "Epoch: 16380/20000, Loss: 0.00002369\n",
      "Epoch: 16390/20000, Loss: 0.00013139\n",
      "Epoch: 16400/20000, Loss: 0.00001825\n",
      "Epoch: 16410/20000, Loss: 0.00002123\n",
      "Epoch: 16420/20000, Loss: 0.00001171\n",
      "Epoch: 16430/20000, Loss: 0.00001138\n",
      "Epoch: 16440/20000, Loss: 0.00000942\n",
      "Epoch: 16450/20000, Loss: 0.00000941\n",
      "Epoch: 16460/20000, Loss: 0.00000921\n",
      "Epoch: 16470/20000, Loss: 0.00000917\n",
      "Epoch: 16480/20000, Loss: 0.00000916\n",
      "Epoch: 16490/20000, Loss: 0.00000915\n",
      "Epoch: 16500/20000, Loss: 0.00000913\n",
      "Epoch: 16510/20000, Loss: 0.00000915\n",
      "Epoch: 16520/20000, Loss: 0.00001070\n",
      "Epoch: 16530/20000, Loss: 0.00018143\n",
      "Epoch: 16540/20000, Loss: 0.00016612\n",
      "Epoch: 16550/20000, Loss: 0.00003302\n",
      "Epoch: 16560/20000, Loss: 0.00001083\n",
      "Epoch: 16570/20000, Loss: 0.00001316\n",
      "Epoch: 16580/20000, Loss: 0.00001170\n",
      "Epoch: 16590/20000, Loss: 0.00000952\n",
      "Epoch: 16600/20000, Loss: 0.00000967\n",
      "Epoch: 16610/20000, Loss: 0.00000961\n",
      "Epoch: 16620/20000, Loss: 0.00000922\n",
      "Epoch: 16630/20000, Loss: 0.00000920\n",
      "Epoch: 16640/20000, Loss: 0.00000916\n",
      "Epoch: 16650/20000, Loss: 0.00000914\n",
      "Epoch: 16660/20000, Loss: 0.00000922\n",
      "Epoch: 16670/20000, Loss: 0.00001542\n",
      "Epoch: 16680/20000, Loss: 0.00014642\n",
      "Epoch: 16690/20000, Loss: 0.00001511\n",
      "Epoch: 16700/20000, Loss: 0.00002594\n",
      "Epoch: 16710/20000, Loss: 0.00000973\n",
      "Epoch: 16720/20000, Loss: 0.00001146\n",
      "Epoch: 16730/20000, Loss: 0.00000935\n",
      "Epoch: 16740/20000, Loss: 0.00000923\n",
      "Epoch: 16750/20000, Loss: 0.00000923\n",
      "Epoch: 16760/20000, Loss: 0.00000918\n",
      "Epoch: 16770/20000, Loss: 0.00000934\n",
      "Epoch: 16780/20000, Loss: 0.00001741\n",
      "Epoch: 16790/20000, Loss: 0.00024612\n",
      "Epoch: 16800/20000, Loss: 0.00004606\n",
      "Epoch: 16810/20000, Loss: 0.00003218\n",
      "Epoch: 16820/20000, Loss: 0.00000952\n",
      "Epoch: 16830/20000, Loss: 0.00001264\n",
      "Epoch: 16840/20000, Loss: 0.00000966\n",
      "Epoch: 16850/20000, Loss: 0.00000925\n",
      "Epoch: 16860/20000, Loss: 0.00000945\n",
      "Epoch: 16870/20000, Loss: 0.00000918\n",
      "Epoch: 16880/20000, Loss: 0.00000913\n",
      "Epoch: 16890/20000, Loss: 0.00000912\n",
      "Epoch: 16900/20000, Loss: 0.00000911\n",
      "Epoch: 16910/20000, Loss: 0.00000909\n",
      "Epoch: 16920/20000, Loss: 0.00000912\n",
      "Epoch: 16930/20000, Loss: 0.00001185\n",
      "Epoch: 16940/20000, Loss: 0.00025490\n",
      "Epoch: 16950/20000, Loss: 0.00007699\n",
      "Epoch: 16960/20000, Loss: 0.00005036\n",
      "Epoch: 16970/20000, Loss: 0.00002433\n",
      "Epoch: 16980/20000, Loss: 0.00001512\n",
      "Epoch: 16990/20000, Loss: 0.00001041\n",
      "Epoch: 17000/20000, Loss: 0.00000940\n",
      "Epoch: 17010/20000, Loss: 0.00000922\n",
      "Epoch: 17020/20000, Loss: 0.00000923\n",
      "Epoch: 17030/20000, Loss: 0.00000916\n",
      "Epoch: 17040/20000, Loss: 0.00000913\n",
      "Epoch: 17050/20000, Loss: 0.00000912\n",
      "Epoch: 17060/20000, Loss: 0.00000911\n",
      "Epoch: 17070/20000, Loss: 0.00000918\n",
      "Epoch: 17080/20000, Loss: 0.00001169\n",
      "Epoch: 17090/20000, Loss: 0.00014111\n",
      "Epoch: 17100/20000, Loss: 0.00008019\n",
      "Epoch: 17110/20000, Loss: 0.00001880\n",
      "Epoch: 17120/20000, Loss: 0.00001606\n",
      "Epoch: 17130/20000, Loss: 0.00001023\n",
      "Epoch: 17140/20000, Loss: 0.00001073\n",
      "Epoch: 17150/20000, Loss: 0.00000931\n",
      "Epoch: 17160/20000, Loss: 0.00000918\n",
      "Epoch: 17170/20000, Loss: 0.00000914\n",
      "Epoch: 17180/20000, Loss: 0.00000910\n",
      "Epoch: 17190/20000, Loss: 0.00000909\n",
      "Epoch: 17200/20000, Loss: 0.00000908\n",
      "Epoch: 17210/20000, Loss: 0.00000908\n",
      "Epoch: 17220/20000, Loss: 0.00000920\n",
      "Epoch: 17230/20000, Loss: 0.00001987\n",
      "Epoch: 17240/20000, Loss: 0.00034793\n",
      "Epoch: 17250/20000, Loss: 0.00002353\n",
      "Epoch: 17260/20000, Loss: 0.00001561\n",
      "Epoch: 17270/20000, Loss: 0.00002034\n",
      "Epoch: 17280/20000, Loss: 0.00001269\n",
      "Epoch: 17290/20000, Loss: 0.00000938\n",
      "Epoch: 17300/20000, Loss: 0.00000974\n",
      "Epoch: 17310/20000, Loss: 0.00000949\n",
      "Epoch: 17320/20000, Loss: 0.00000928\n",
      "Epoch: 17330/20000, Loss: 0.00000919\n",
      "Epoch: 17340/20000, Loss: 0.00000910\n",
      "Epoch: 17350/20000, Loss: 0.00000909\n",
      "Epoch: 17360/20000, Loss: 0.00000910\n",
      "Epoch: 17370/20000, Loss: 0.00000988\n",
      "Epoch: 17380/20000, Loss: 0.00005815\n",
      "Epoch: 17390/20000, Loss: 0.00002188\n",
      "Epoch: 17400/20000, Loss: 0.00003382\n",
      "Epoch: 17410/20000, Loss: 0.00000964\n",
      "Epoch: 17420/20000, Loss: 0.00001180\n",
      "Epoch: 17430/20000, Loss: 0.00001014\n",
      "Epoch: 17440/20000, Loss: 0.00000916\n",
      "Epoch: 17450/20000, Loss: 0.00000909\n",
      "Epoch: 17460/20000, Loss: 0.00000913\n",
      "Epoch: 17470/20000, Loss: 0.00001012\n",
      "Epoch: 17480/20000, Loss: 0.00004986\n",
      "Epoch: 17490/20000, Loss: 0.00004759\n",
      "Epoch: 17500/20000, Loss: 0.00002886\n",
      "Epoch: 17510/20000, Loss: 0.00001704\n",
      "Epoch: 17520/20000, Loss: 0.00000993\n",
      "Epoch: 17530/20000, Loss: 0.00001053\n",
      "Epoch: 17540/20000, Loss: 0.00000984\n",
      "Epoch: 17550/20000, Loss: 0.00000935\n",
      "Epoch: 17560/20000, Loss: 0.00000913\n",
      "Epoch: 17570/20000, Loss: 0.00000906\n",
      "Epoch: 17580/20000, Loss: 0.00000908\n",
      "Epoch: 17590/20000, Loss: 0.00000907\n",
      "Epoch: 17600/20000, Loss: 0.00000995\n",
      "Epoch: 17610/20000, Loss: 0.00002303\n",
      "Epoch: 17620/20000, Loss: 0.00020574\n",
      "Epoch: 17630/20000, Loss: 0.00003206\n",
      "Epoch: 17640/20000, Loss: 0.00003468\n",
      "Epoch: 17650/20000, Loss: 0.00001437\n",
      "Epoch: 17660/20000, Loss: 0.00001016\n",
      "Epoch: 17670/20000, Loss: 0.00001038\n",
      "Epoch: 17680/20000, Loss: 0.00000924\n",
      "Epoch: 17690/20000, Loss: 0.00000919\n",
      "Epoch: 17700/20000, Loss: 0.00000911\n",
      "Epoch: 17710/20000, Loss: 0.00000914\n",
      "Epoch: 17720/20000, Loss: 0.00001015\n",
      "Epoch: 17730/20000, Loss: 0.00004535\n",
      "Epoch: 17740/20000, Loss: 0.00002747\n",
      "Epoch: 17750/20000, Loss: 0.00002350\n",
      "Epoch: 17760/20000, Loss: 0.00001587\n",
      "Epoch: 17770/20000, Loss: 0.00000951\n",
      "Epoch: 17780/20000, Loss: 0.00000960\n",
      "Epoch: 17790/20000, Loss: 0.00000940\n",
      "Epoch: 17800/20000, Loss: 0.00000918\n",
      "Epoch: 17810/20000, Loss: 0.00000905\n",
      "Epoch: 17820/20000, Loss: 0.00000908\n",
      "Epoch: 17830/20000, Loss: 0.00000965\n",
      "Epoch: 17840/20000, Loss: 0.00001052\n",
      "Epoch: 17850/20000, Loss: 0.00006727\n",
      "Epoch: 17860/20000, Loss: 0.00001149\n",
      "Epoch: 17870/20000, Loss: 0.00005932\n",
      "Epoch: 17880/20000, Loss: 0.00000967\n",
      "Epoch: 17890/20000, Loss: 0.00001609\n",
      "Epoch: 17900/20000, Loss: 0.00000949\n",
      "Epoch: 17910/20000, Loss: 0.00000941\n",
      "Epoch: 17920/20000, Loss: 0.00000941\n",
      "Epoch: 17930/20000, Loss: 0.00000918\n",
      "Epoch: 17940/20000, Loss: 0.00000909\n",
      "Epoch: 17950/20000, Loss: 0.00000907\n",
      "Epoch: 17960/20000, Loss: 0.00000963\n",
      "Epoch: 17970/20000, Loss: 0.00004117\n",
      "Epoch: 17980/20000, Loss: 0.00001300\n",
      "Epoch: 17990/20000, Loss: 0.00002821\n",
      "Epoch: 18000/20000, Loss: 0.00001564\n",
      "Epoch: 18010/20000, Loss: 0.00000971\n",
      "Epoch: 18020/20000, Loss: 0.00001025\n",
      "Epoch: 18030/20000, Loss: 0.00000961\n",
      "Epoch: 18040/20000, Loss: 0.00000931\n",
      "Epoch: 18050/20000, Loss: 0.00001013\n",
      "Epoch: 18060/20000, Loss: 0.00002632\n",
      "Epoch: 18070/20000, Loss: 0.00017710\n",
      "Epoch: 18080/20000, Loss: 0.00002864\n",
      "Epoch: 18090/20000, Loss: 0.00001989\n",
      "Epoch: 18100/20000, Loss: 0.00001258\n",
      "Epoch: 18110/20000, Loss: 0.00000976\n",
      "Epoch: 18120/20000, Loss: 0.00000946\n",
      "Epoch: 18130/20000, Loss: 0.00000920\n",
      "Epoch: 18140/20000, Loss: 0.00000904\n",
      "Epoch: 18150/20000, Loss: 0.00000903\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 18160/20000, Loss: 0.00000906\n",
      "Epoch: 18170/20000, Loss: 0.00000960\n",
      "Epoch: 18180/20000, Loss: 0.00000964\n",
      "Epoch: 18190/20000, Loss: 0.00001861\n",
      "Epoch: 18200/20000, Loss: 0.00018252\n",
      "Epoch: 18210/20000, Loss: 0.00006901\n",
      "Epoch: 18220/20000, Loss: 0.00001845\n",
      "Epoch: 18230/20000, Loss: 0.00000983\n",
      "Epoch: 18240/20000, Loss: 0.00001015\n",
      "Epoch: 18250/20000, Loss: 0.00000967\n",
      "Epoch: 18260/20000, Loss: 0.00000931\n",
      "Epoch: 18270/20000, Loss: 0.00001099\n",
      "Epoch: 18280/20000, Loss: 0.00005483\n",
      "Epoch: 18290/20000, Loss: 0.00001118\n",
      "Epoch: 18300/20000, Loss: 0.00001333\n",
      "Epoch: 18310/20000, Loss: 0.00001276\n",
      "Epoch: 18320/20000, Loss: 0.00001088\n",
      "Epoch: 18330/20000, Loss: 0.00001210\n",
      "Epoch: 18340/20000, Loss: 0.00001671\n",
      "Epoch: 18350/20000, Loss: 0.00004877\n",
      "Epoch: 18360/20000, Loss: 0.00002179\n",
      "Epoch: 18370/20000, Loss: 0.00002009\n",
      "Epoch: 18380/20000, Loss: 0.00001147\n",
      "Epoch: 18390/20000, Loss: 0.00001174\n",
      "Epoch: 18400/20000, Loss: 0.00001409\n",
      "Epoch: 18410/20000, Loss: 0.00003196\n",
      "Epoch: 18420/20000, Loss: 0.00007502\n",
      "Epoch: 18430/20000, Loss: 0.00002763\n",
      "Epoch: 18440/20000, Loss: 0.00001268\n",
      "Epoch: 18450/20000, Loss: 0.00001074\n",
      "Epoch: 18460/20000, Loss: 0.00001806\n",
      "Epoch: 18470/20000, Loss: 0.00004659\n",
      "Epoch: 18480/20000, Loss: 0.00001932\n",
      "Epoch: 18490/20000, Loss: 0.00001607\n",
      "Epoch: 18500/20000, Loss: 0.00001594\n",
      "Epoch: 18510/20000, Loss: 0.00001710\n",
      "Epoch: 18520/20000, Loss: 0.00004573\n",
      "Epoch: 18530/20000, Loss: 0.00002048\n",
      "Epoch: 18540/20000, Loss: 0.00001943\n",
      "Epoch: 18550/20000, Loss: 0.00001264\n",
      "Epoch: 18560/20000, Loss: 0.00001253\n",
      "Epoch: 18570/20000, Loss: 0.00002417\n",
      "Epoch: 18580/20000, Loss: 0.00008420\n",
      "Epoch: 18590/20000, Loss: 0.00002926\n",
      "Epoch: 18600/20000, Loss: 0.00001995\n",
      "Epoch: 18610/20000, Loss: 0.00001116\n",
      "Epoch: 18620/20000, Loss: 0.00001052\n",
      "Epoch: 18630/20000, Loss: 0.00001209\n",
      "Epoch: 18640/20000, Loss: 0.00002632\n",
      "Epoch: 18650/20000, Loss: 0.00006649\n",
      "Epoch: 18660/20000, Loss: 0.00002826\n",
      "Epoch: 18670/20000, Loss: 0.00001795\n",
      "Epoch: 18680/20000, Loss: 0.00001133\n",
      "Epoch: 18690/20000, Loss: 0.00000970\n",
      "Epoch: 18700/20000, Loss: 0.00001311\n",
      "Epoch: 18710/20000, Loss: 0.00006385\n",
      "Epoch: 18720/20000, Loss: 0.00004305\n",
      "Epoch: 18730/20000, Loss: 0.00001807\n",
      "Epoch: 18740/20000, Loss: 0.00001315\n",
      "Epoch: 18750/20000, Loss: 0.00001111\n",
      "Epoch: 18760/20000, Loss: 0.00000939\n",
      "Epoch: 18770/20000, Loss: 0.00000923\n",
      "Epoch: 18780/20000, Loss: 0.00000915\n",
      "Epoch: 18790/20000, Loss: 0.00000907\n",
      "Epoch: 18800/20000, Loss: 0.00001002\n",
      "Epoch: 18810/20000, Loss: 0.00001570\n",
      "Epoch: 18820/20000, Loss: 0.00021509\n",
      "Epoch: 18830/20000, Loss: 0.00002025\n",
      "Epoch: 18840/20000, Loss: 0.00003372\n",
      "Epoch: 18850/20000, Loss: 0.00001451\n",
      "Epoch: 18860/20000, Loss: 0.00001097\n",
      "Epoch: 18870/20000, Loss: 0.00000967\n",
      "Epoch: 18880/20000, Loss: 0.00000948\n",
      "Epoch: 18890/20000, Loss: 0.00000904\n",
      "Epoch: 18900/20000, Loss: 0.00000899\n",
      "Epoch: 18910/20000, Loss: 0.00000944\n",
      "Epoch: 18920/20000, Loss: 0.00005321\n",
      "Epoch: 18930/20000, Loss: 0.00003061\n",
      "Epoch: 18940/20000, Loss: 0.00004064\n",
      "Epoch: 18950/20000, Loss: 0.00002306\n",
      "Epoch: 18960/20000, Loss: 0.00001076\n",
      "Epoch: 18970/20000, Loss: 0.00001095\n",
      "Epoch: 18980/20000, Loss: 0.00000970\n",
      "Epoch: 18990/20000, Loss: 0.00000928\n",
      "Epoch: 19000/20000, Loss: 0.00000912\n",
      "Epoch: 19010/20000, Loss: 0.00000909\n",
      "Epoch: 19020/20000, Loss: 0.00000900\n",
      "Epoch: 19030/20000, Loss: 0.00000899\n",
      "Epoch: 19040/20000, Loss: 0.00000897\n",
      "Epoch: 19050/20000, Loss: 0.00000897\n",
      "Epoch: 19060/20000, Loss: 0.00000901\n",
      "Epoch: 19070/20000, Loss: 0.00000997\n",
      "Epoch: 19080/20000, Loss: 0.00001141\n",
      "Epoch: 19090/20000, Loss: 0.00021053\n",
      "Epoch: 19100/20000, Loss: 0.00009102\n",
      "Epoch: 19110/20000, Loss: 0.00004973\n",
      "Epoch: 19120/20000, Loss: 0.00001897\n",
      "Epoch: 19130/20000, Loss: 0.00000964\n",
      "Epoch: 19140/20000, Loss: 0.00001019\n",
      "Epoch: 19150/20000, Loss: 0.00000943\n",
      "Epoch: 19160/20000, Loss: 0.00000914\n",
      "Epoch: 19170/20000, Loss: 0.00000903\n",
      "Epoch: 19180/20000, Loss: 0.00000910\n",
      "Epoch: 19190/20000, Loss: 0.00000905\n",
      "Epoch: 19200/20000, Loss: 0.00000912\n",
      "Epoch: 19210/20000, Loss: 0.00000897\n",
      "Epoch: 19220/20000, Loss: 0.00000898\n",
      "Epoch: 19230/20000, Loss: 0.00001008\n",
      "Epoch: 19240/20000, Loss: 0.00011663\n",
      "Epoch: 19250/20000, Loss: 0.00008024\n",
      "Epoch: 19260/20000, Loss: 0.00001447\n",
      "Epoch: 19270/20000, Loss: 0.00001529\n",
      "Epoch: 19280/20000, Loss: 0.00001397\n",
      "Epoch: 19290/20000, Loss: 0.00000979\n",
      "Epoch: 19300/20000, Loss: 0.00000932\n",
      "Epoch: 19310/20000, Loss: 0.00000908\n",
      "Epoch: 19320/20000, Loss: 0.00000904\n",
      "Epoch: 19330/20000, Loss: 0.00000898\n",
      "Epoch: 19340/20000, Loss: 0.00000900\n",
      "Epoch: 19350/20000, Loss: 0.00000939\n",
      "Epoch: 19360/20000, Loss: 0.00002682\n",
      "Epoch: 19370/20000, Loss: 0.00013772\n",
      "Epoch: 19380/20000, Loss: 0.00002359\n",
      "Epoch: 19390/20000, Loss: 0.00001669\n",
      "Epoch: 19400/20000, Loss: 0.00001345\n",
      "Epoch: 19410/20000, Loss: 0.00001131\n",
      "Epoch: 19420/20000, Loss: 0.00000923\n",
      "Epoch: 19430/20000, Loss: 0.00000910\n",
      "Epoch: 19440/20000, Loss: 0.00000903\n",
      "Epoch: 19450/20000, Loss: 0.00000898\n",
      "Epoch: 19460/20000, Loss: 0.00000896\n",
      "Epoch: 19470/20000, Loss: 0.00000895\n",
      "Epoch: 19480/20000, Loss: 0.00000897\n",
      "Epoch: 19490/20000, Loss: 0.00000957\n",
      "Epoch: 19500/20000, Loss: 0.00004166\n",
      "Epoch: 19510/20000, Loss: 0.00007404\n",
      "Epoch: 19520/20000, Loss: 0.00004051\n",
      "Epoch: 19530/20000, Loss: 0.00001609\n",
      "Epoch: 19540/20000, Loss: 0.00001447\n",
      "Epoch: 19550/20000, Loss: 0.00001061\n",
      "Epoch: 19560/20000, Loss: 0.00000905\n",
      "Epoch: 19570/20000, Loss: 0.00000972\n",
      "Epoch: 19580/20000, Loss: 0.00000940\n",
      "Epoch: 19590/20000, Loss: 0.00000904\n",
      "Epoch: 19600/20000, Loss: 0.00000900\n",
      "Epoch: 19610/20000, Loss: 0.00000920\n",
      "Epoch: 19620/20000, Loss: 0.00001759\n",
      "Epoch: 19630/20000, Loss: 0.00009838\n",
      "Epoch: 19640/20000, Loss: 0.00002038\n",
      "Epoch: 19650/20000, Loss: 0.00001083\n",
      "Epoch: 19660/20000, Loss: 0.00001369\n",
      "Epoch: 19670/20000, Loss: 0.00001038\n",
      "Epoch: 19680/20000, Loss: 0.00000916\n",
      "Epoch: 19690/20000, Loss: 0.00000918\n",
      "Epoch: 19700/20000, Loss: 0.00001344\n",
      "Epoch: 19710/20000, Loss: 0.00017004\n",
      "Epoch: 19720/20000, Loss: 0.00007048\n",
      "Epoch: 19730/20000, Loss: 0.00002080\n",
      "Epoch: 19740/20000, Loss: 0.00001768\n",
      "Epoch: 19750/20000, Loss: 0.00000939\n",
      "Epoch: 19760/20000, Loss: 0.00000932\n",
      "Epoch: 19770/20000, Loss: 0.00000935\n",
      "Epoch: 19780/20000, Loss: 0.00000914\n",
      "Epoch: 19790/20000, Loss: 0.00000911\n",
      "Epoch: 19800/20000, Loss: 0.00000899\n",
      "Epoch: 19810/20000, Loss: 0.00000908\n",
      "Epoch: 19820/20000, Loss: 0.00000895\n",
      "Epoch: 19830/20000, Loss: 0.00000909\n",
      "Epoch: 19840/20000, Loss: 0.00001464\n",
      "Epoch: 19850/20000, Loss: 0.00024262\n",
      "Epoch: 19860/20000, Loss: 0.00008782\n",
      "Epoch: 19870/20000, Loss: 0.00001743\n",
      "Epoch: 19880/20000, Loss: 0.00001689\n",
      "Epoch: 19890/20000, Loss: 0.00001116\n",
      "Epoch: 19900/20000, Loss: 0.00001006\n",
      "Epoch: 19910/20000, Loss: 0.00000904\n",
      "Epoch: 19920/20000, Loss: 0.00000917\n",
      "Epoch: 19930/20000, Loss: 0.00000901\n",
      "Epoch: 19940/20000, Loss: 0.00000896\n",
      "Epoch: 19950/20000, Loss: 0.00000913\n",
      "Epoch: 19960/20000, Loss: 0.00001773\n",
      "Epoch: 19970/20000, Loss: 0.00013683\n",
      "Epoch: 19980/20000, Loss: 0.00001390\n",
      "Epoch: 19990/20000, Loss: 0.00002331\n",
      "Epoch: 20000/20000, Loss: 0.00001044\n"
     ]
    }
   ],
   "source": [
    "# Create LSTM instance\n",
    "lstm = LSTM(input_size, hidden_size, output_size)\n",
    "\n",
    "# Loss and optimizer\n",
    "criterion = nn.MSELoss()\n",
    "optimizer = torch.optim.Adam(lstm.parameters(), lr=0.01)\n",
    "\n",
    "# Training loop\n",
    "for epoch in range(num_epochs):\n",
    "    # Set initial hidden state and cell state\n",
    "    hidden = torch.zeros(1, batch_size, hidden_size)\n",
    "    cell = torch.zeros(1, batch_size, hidden_size)\n",
    "\n",
    "    # Forward pass\n",
    "    output, (hidden, cell) = lstm(input_tensor, (hidden, cell))\n",
    "    loss = criterion(output, target_tensor)\n",
    "\n",
    "    # Backward and optimize\n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "\n",
    "    # Print progress\n",
    "    if (epoch+1) % 10 == 0:\n",
    "        print(f'Epoch: {epoch+1}/{num_epochs}, Loss: {loss.item():.8f}')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "986e4048",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([1, 1, 256])\n",
      "torch.Size([1, 20, 256])\n"
     ]
    }
   ],
   "source": [
    "print(test_tensor.shape)\n",
    "prediction_tensor = torch.zeros(1, 20, 256).float()\n",
    "print(prediction_tensor.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "60c20ae0",
   "metadata": {},
   "outputs": [],
   "source": [
    "with torch.no_grad():\n",
    "    hidden_pred = torch.zeros(1, batch_size, hidden_size)\n",
    "    cell_pred = torch.zeros(1, batch_size, hidden_size)\n",
    "    prediction, _ = lstm(test_tensor, (hidden_pred, cell_pred))\n",
    "    prediction = prediction.view(1, 1, 256).float()\n",
    "    prediction_tensor[:, 0, :] = prediction\n",
    "    for i in range(19):\n",
    "        hidden_pred = torch.zeros(1, batch_size, hidden_size)\n",
    "        cell_pred = torch.zeros(1, batch_size, hidden_size)\n",
    "        prediction, _ = lstm(test_tensor, (hidden_pred, cell_pred))\n",
    "        prediction = prediction.view(1, 1, 256).float()\n",
    "        prediction_tensor[:, i+1, :] = prediction"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4a90e52a",
   "metadata": {},
   "source": [
    "### Four different types of error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "bef6a130",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Exact Solution\n",
    "u_1 = u\n",
    "u_test = u_1.T\n",
    "u_test_full = u_test[80:100, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "e2ddbdc2",
   "metadata": {},
   "outputs": [],
   "source": [
    "prediction_tensor = torch.squeeze(prediction_tensor)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "ccf1b971",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([20, 256])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Extrapolation\n",
    "\n",
    "k1 = ( prediction_tensor - u_test_full)**2\n",
    "u_test_full_tensor = torch.tensor(u_test_full**2)\n",
    "u_test_full_tensor.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f9f7558",
   "metadata": {},
   "source": [
    "### L^2 norm error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "0c7a201a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relative Error Test:  0.46070526643518345 %\n"
     ]
    }
   ],
   "source": [
    "# Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean(k1)/ torch.mean(u_test_full_tensor)\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test.item(), \"%\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8cb76eb1",
   "metadata": {},
   "source": [
    "### Max absolute norm error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "323de4e6",
   "metadata": {},
   "outputs": [],
   "source": [
    "R_abs = torch.max(torch.abs(prediction_tensor - u_test_full))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "8c372e5e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor(1.0222, dtype=torch.float64)\n"
     ]
    }
   ],
   "source": [
    "print(R_abs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "afbe76c9",
   "metadata": {},
   "source": [
    "### Explained variance score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "d2cb017e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Explained Variance Score: 0.5392949455936251\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "\n",
    "a = prediction_tensor\n",
    "b = u_test_full\n",
    "# Assuming 'a' is your predicted values (model's predictions) and 'b' is the true values (ground truth)\n",
    "# Make sure 'a' and 'b' are PyTorch tensors\n",
    "# a = torch.tensor(a)\n",
    "b = torch.tensor(b)\n",
    "# Calculate the mean of 'b'\n",
    "mean_b = torch.mean(b)\n",
    "\n",
    "# Calculate the Explained Variance Score\n",
    "numerator = torch.var(b - a)  # Variance of the differences between 'b' and 'a'\n",
    "denominator = torch.var(b)    # Variance of 'b'\n",
    "evs = 1 - numerator / denominator\n",
    "\n",
    "print(\"Explained Variance Score:\", evs.item())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d74533a9",
   "metadata": {},
   "source": [
    "### Mean absolute error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "89866f2e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Relative Error Test:  tensor(0.2851, dtype=torch.float64) %\n"
     ]
    }
   ],
   "source": [
    "# Compute the relative L2 error norm (generalization error)\n",
    "relative_error_test = torch.mean(torch.abs(prediction_tensor - u_test_full))\n",
    "\n",
    "print(\"Relative Error Test: \", relative_error_test, \"%\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "83b467df",
   "metadata": {},
   "source": [
    "### Contour plot for PINN (80 percent) and (20 percentage lem prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "8ae31ab0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([20, 256])\n"
     ]
    }
   ],
   "source": [
    "print(prediction_tensor.shape)\n",
    "prediction_tensor = torch.squeeze(prediction_tensor)\n",
    "input_tensor = torch.squeeze(input_tensor)\n",
    "\n",
    "conc_u = torch.squeeze(input_tensor)\n",
    "concatenated_tensor = torch.cat((conc_u, prediction_tensor), dim=0)\n",
    "\n",
    "x1 = np.linspace(-1, 1, 256)\n",
    "t1 = np.linspace(0, 1, 99)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f646adab",
   "metadata": {},
   "source": [
    "### Snapshot time plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "e65b03b6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(5, 5))  # You can adjust the width (7 inches) and height (5 inches) as needed\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "final_time_output = prediction_tensor[3, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = u_1[:, 83].reshape(-1, 1)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x.T, final_out, color='red', linestyle='dotted', linewidth=12, label='Prediction')\n",
    "ax.plot(x.T, final_true, color='blue', linestyle='solid', linewidth=7, label='True')\n",
    "\n",
    "\n",
    "# Set the axis labels with bold font weight\n",
    "ax.set_xlabel(r\"${x}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "ax.set_ylabel(r\"${u(x, t)}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "\n",
    "# Set the title with bold font weight\n",
    "ax.set_title(r\"${t = 0.83}$\", fontsize=26, color='black', fontweight='bold')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([-1, 0, 1])\n",
    "ax.set_yticks([-1, 0, 1])\n",
    "\n",
    "# Set tick labels fontweight to bold and increase font size\n",
    "ax.tick_params(axis='both', which='major', labelsize=20, width=2, length=10)\n",
    "\n",
    "# # Set the fontweight for tick labels to bold\n",
    "# for tick in ax.get_xticklabels() + ax.get_yticklabels():\n",
    "#     tick.set_weight('bold')\n",
    "\n",
    "# Set the spines linewidth to bold\n",
    "ax.spines['top'].set_linewidth(2)\n",
    "ax.spines['right'].set_linewidth(2)\n",
    "ax.spines['bottom'].set_linewidth(2)\n",
    "ax.spines['left'].set_linewidth(2)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('LSTM_0.83_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "#plt.savefig('lem_0.83_20.png', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "d98cd1ee",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import torch\n",
    "\n",
    "# Create the figure and axis objects with reduced width\n",
    "fig, ax = plt.subplots(figsize=(5, 5))  # You can adjust the width (7 inches) and height (5 inches) as needed\n",
    "\n",
    "\n",
    "\n",
    "final_time_output = prediction_tensor[-2, :]\n",
    "final_out = final_time_output.detach().numpy().reshape(-1, 1)\n",
    "final_true = u_1[:, -2].reshape(-1, 1)\n",
    "\n",
    "# Plot the data with red and blue lines, one with dotted and one with solid style\n",
    "ax.plot(x.T, final_out, color='red', linestyle='dotted', linewidth=12, label='Prediction')\n",
    "ax.plot(x.T, final_true, color='blue', linestyle='solid', linewidth=7, label='True')\n",
    "\n",
    "\n",
    "# Set the axis labels with bold font weight\n",
    "ax.set_xlabel(r\"${x}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "ax.set_ylabel(r\"${u(x, t)}$\", fontsize=26, color='black', fontdict={'weight': 'bold'})\n",
    "\n",
    "# Set the title with bold font weight\n",
    "ax.set_title(r\"${t = 0.98}$\", fontsize=26, color='black', fontweight='bold')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 3\n",
    "ax.set_xticks([-1, 0, 1])\n",
    "ax.set_yticks([-1, 0, 1])\n",
    "\n",
    "# Set tick labels fontweight to bold and increase font size\n",
    "ax.tick_params(axis='both', which='major', labelsize=20, width=2, length=10)\n",
    "\n",
    "# # Set the fontweight for tick labels to bold\n",
    "# for tick in ax.get_xticklabels() + ax.get_yticklabels():\n",
    "#     tick.set_weight('bold')\n",
    "\n",
    "# Set the spines linewidth to bold\n",
    "ax.spines['top'].set_linewidth(2)\n",
    "ax.spines['right'].set_linewidth(2)\n",
    "ax.spines['bottom'].set_linewidth(2)\n",
    "ax.spines['left'].set_linewidth(2)\n",
    "\n",
    "# Set the legend\n",
    "# ax.legend()\n",
    "\n",
    "plt.savefig('LSTM_0.98_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "#plt.savefig('lem_0.98_20.png', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "986fafe0",
   "metadata": {},
   "source": [
    "### Contour plot where 80 percent for PINN solution and 20 percent for LSTM solution"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6665c9a8",
   "metadata": {},
   "source": [
    "### Exact contour"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "736d32fe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import FixedLocator\n",
    "\n",
    "# Assuming you have defined concatenated_tensor as a PyTorch tensor\n",
    "# concatenated_tensor = torch.cat((tensor1, tensor2), dim=0)\n",
    "\n",
    "# Convert concatenated_tensor to a NumPy array\n",
    "concatenated_array = u_1.T\n",
    "\n",
    "# Define custom color levels\n",
    "x = np.linspace(-1, 1, concatenated_array.shape[1])  # Replace 0 and 1 with your actual x range\n",
    "t = np.linspace(0, 1, concatenated_array.shape[0])  # Replace 0 and 1 with your actual t range\n",
    "X, T = np.meshgrid(x, t)\n",
    "\n",
    "# Define custom color levels using the minimum and maximum from the NumPy array\n",
    "c_levels = np.linspace(np.min(concatenated_array), np.max(concatenated_array), 400)\n",
    "\n",
    "# Plot the contour with interpolated data\n",
    "plt.figure(figsize=(20, 5))\n",
    "plt.pcolormesh(T, X, concatenated_array, shading='auto', cmap='coolwarm')\n",
    "\n",
    "# Set the fontweight for axis labels to regular (not bold)\n",
    "plt.xlabel(\"$t$\", fontsize=26)\n",
    "plt.ylabel(\"$x$\", fontsize=26)\n",
    "plt.title(\"$u(x, t)$\", fontsize=26)\n",
    "\n",
    "# Set tick labels fontweight to regular (not bold) and increase font size\n",
    "plt.tick_params(axis='both', which='major', labelsize=20, width=3, length=10)\n",
    "\n",
    "# Set the fontweight for tick labels to regular (not bold)\n",
    "for tick in plt.gca().get_xticklabels() + plt.gca().get_yticklabels():\n",
    "    tick.set_weight('normal')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 5\n",
    "num_ticks = 5\n",
    "x_ticks = np.linspace(np.min(T), np.max(T), num_ticks)\n",
    "y_ticks = np.linspace(np.min(X), np.max(X), num_ticks)\n",
    "\n",
    "plt.gca().xaxis.set_major_locator(FixedLocator(x_ticks))\n",
    "plt.gca().yaxis.set_major_locator(FixedLocator(y_ticks))\n",
    "\n",
    "cbar1 = plt.colorbar()\n",
    "# Set the number of ticks for the color bar with uniformly distributed numbers\n",
    "num_ticks = 5\n",
    "c_ticks = np.linspace(np.min(concatenated_array), np.max(concatenated_array), num_ticks)\n",
    "cbar1.set_ticks(c_ticks)\n",
    "\n",
    "# Set the fontweight and fontsize for color bar tick labels\n",
    "for t in cbar1.ax.get_yticklabels():\n",
    "    t.set_weight('normal')\n",
    "    t.set_fontsize(26)  # Increase the font size for color bar tick labels\n",
    "\n",
    "# Increase the size of numbers on axis and color bar\n",
    "plt.xticks(fontsize=26)\n",
    "plt.yticks(fontsize=26)\n",
    "\n",
    "# Increase the tick size and width of the color bar\n",
    "cbar1.ax.tick_params(axis='both', which='major', labelsize=30, width=3,  length=10)\n",
    "\n",
    "#plt.savefig('Contour_Exact.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "plt.savefig('contour_exact.jpeg', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "dc797c80",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import FixedLocator\n",
    "\n",
    "# Assuming you have defined concatenated_tensor as a PyTorch tensor\n",
    "# concatenated_tensor = torch.cat((tensor1, tensor2), dim=0)\n",
    "\n",
    "# Convert concatenated_tensor to a NumPy array\n",
    "concatenated_array = concatenated_tensor.numpy()\n",
    "\n",
    "# Define custom color levels\n",
    "x = np.linspace(-1, 1, concatenated_array.shape[1])  # Replace 0 and 1 with your actual x range\n",
    "t = np.linspace(0, 1, concatenated_array.shape[0])  # Replace 0 and 1 with your actual t range\n",
    "X, T = np.meshgrid(x, t1)\n",
    "\n",
    "# Define custom color levels using the minimum and maximum from the NumPy array\n",
    "c_levels = np.linspace(np.min(concatenated_array), np.max(concatenated_array), 400)\n",
    "\n",
    "# Plot the contour with interpolated data\n",
    "plt.figure(figsize=(20, 5))\n",
    "plt.pcolormesh(T, X, concatenated_array, shading='auto', cmap='coolwarm')\n",
    "\n",
    "# Set the fontweight for axis labels to regular (not bold)\n",
    "plt.xlabel(\"$t$\", fontsize=26)\n",
    "plt.ylabel(\"$x$\", fontsize=26)\n",
    "plt.title(\"$u(x, t)$\", fontsize=26)\n",
    "\n",
    "# Set tick labels fontweight to regular (not bold) and increase font size\n",
    "plt.tick_params(axis='both', which='major', labelsize=20, width=3, length=10)\n",
    "\n",
    "# Set the fontweight for tick labels to regular (not bold)\n",
    "for tick in plt.gca().get_xticklabels() + plt.gca().get_yticklabels():\n",
    "    tick.set_weight('normal')\n",
    "\n",
    "# Set the number of ticks for x-axis and y-axis to 5\n",
    "num_ticks = 5\n",
    "x_ticks = np.linspace(np.min(T), np.max(T), num_ticks)\n",
    "y_ticks = np.linspace(np.min(X), np.max(X), num_ticks)\n",
    "\n",
    "plt.gca().xaxis.set_major_locator(FixedLocator(x_ticks))\n",
    "plt.gca().yaxis.set_major_locator(FixedLocator(y_ticks))\n",
    "\n",
    "cbar1 = plt.colorbar()\n",
    "# Set the number of ticks for the color bar with uniformly distributed numbers\n",
    "num_ticks = 5\n",
    "c_ticks = np.linspace(np.min(concatenated_array), np.max(concatenated_array), num_ticks)\n",
    "cbar1.set_ticks(c_ticks)\n",
    "\n",
    "# Set the fontweight and fontsize for color bar tick labels\n",
    "for t in cbar1.ax.get_yticklabels():\n",
    "    t.set_weight('normal')\n",
    "    t.set_fontsize(26)  # Increase the font size for color bar tick labels\n",
    "\n",
    "# Increase the size of numbers on axis and color bar\n",
    "plt.xticks(fontsize=26)\n",
    "plt.yticks(fontsize=26)\n",
    "\n",
    "# Increase the tick size and width of the color bar\n",
    "cbar1.ax.tick_params(axis='both', which='major', labelsize=30, width=3,  length=10)\n",
    "\n",
    "# Add a dotted line at t = 0.8\n",
    "plt.axvline(x=0.8, color='black', linestyle='dotted', linewidth=5)\n",
    "\n",
    "#plt.savefig('Contour_LEM_20.pdf', dpi=500, bbox_inches=\"tight\")\n",
    "plt.savefig('contour_LSTM_20.jpeg', dpi=500, bbox_inches=\"tight\")\n",
    "# Show the plot\n",
    "plt.show()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
